c语言读取文件中的某一列并存入数组
时间: 2024-11-03 19:23:28 浏览: 15
在C语言中,读取文件中的特定列并将其存储到数组里,通常涉及到两个步骤:首先打开文件,然后逐行读取数据并解析每一行获取所需的值。假设你要读取的是CSV格式的文件,其中每列由逗号分隔。
以下是基本的步骤和示例代码:
1. 打开文件:
```c
#include <stdio.h>
FILE *file = fopen("filename.csv", "r");
if (file == NULL) {
perror("Failed to open file");
exit(1);
}
```
2. 定义结构体表示一行数据和数组大小:
```c
#define COLUMN_COUNT 5 // 假设你要读取5列
typedef struct {
char data[COLUMN_COUNT][MAX_LINE_LENGTH];
} DataRow;
DataRow rows[FILE_SIZE]; // 根据文件大小预估数组大小
int row_count = 0;
```
3. 读取并处理每一行:
```c
while (fgets(rows[row_count].data, sizeof(rows[row_count].data), file)) {
// 解析每一列
char* token = strtok(rows[row_count].data, ",");
if (row_count < COLUMN_COUNT) { // 如果还没达到最大列数
for (int i = 0; i < COLUMN_COUNT && token != NULL; ++i, token = strtok(NULL, ",")) {
rows[row_count][i] = token;
}
++row_count; // 进入下一行
} else {
break; // 文件中已经读取完所有行
}
}
```
4. 关闭文件:
```c
fclose(file);
```
注意:上述代码假设每个单元格的数据不会超过`MAX_LINE_LENGTH`个字符,并且你需要预先知道文件的总行数或设置合理的数组大小。此外,这个例子未考虑错误处理,实际应用中应加入适当的错误检查。
阅读全文