c语言 读取txt文件

给定一个txt文件
有标题和一行表头
如何跳过标题和表头读取数据啊?

先来2个fgets,读到的数据丢弃。然后开始读数据。或者读到2个\n后开始读数据 😁

以下代码可以读取txt到一个二维数组,读取后,从下标2开始就是数据(也就是跳过0 1)

#include <stdio.h>

#define MAX_ROWS 1000
#define MAX_COLS 1000

int main() {
    FILE *file;
    char buffer[MAX_COLS];
    char array[MAX_ROWS][MAX_COLS];
    int row = 0;
  
    file = fopen("file.txt", "r"); // 替换为您要读取的文件名

    if (file == NULL) {
        printf("无法打开文件!\n");
        return 1;
    }

    while (fgets(buffer, sizeof(buffer), file)) {
        if (row >= MAX_ROWS) {
            printf("数组大小不足以容纳文件内容!\n");
            break;
        }
        strcpy(array[row], buffer);
        row++;
    }

    fclose(file);

    // 打印二维数组内容
    for (int i = 0; i < row; i++) {
        printf("%s", array[i]);
    }

    return 0;
}

【以下回答由 GPT 生成】

对于这个问题,你可以使用C语言的文件操作功能来读取txt文件的数据并跳过标题和表头。具体步骤如下:

  1. 打开txt文件: c FILE *file = fopen("file.txt", "r"); if (file == NULL) { printf("无法打开文件"); return -1; // 返回错误码 }

  2. 跳过标题和表头: 首先读取第一行的标题,可以使用fgets函数来读取,然后不做任何处理即可跳过。接下来读取第二行的表头,也使用fgets函数来读取,同样不做处理即可跳过。 c char title[100]; char header[100]; fgets(title, sizeof(title), file); // 读取标题并跳过 fgets(header, sizeof(header), file); // 读取表头并跳过

  3. 读取有效数据: 使用fgets函数循环读取文件中的每一行数据(从第三行开始),并将数据存储到适当的变量中。 c char line[100]; while (fgets(line, sizeof(line), file) != NULL) { // 对每一行的数据进行处理 // 例如使用strtok函数将每一行的数据按照分隔符拆分成多个字段 }

  4. 关闭文件: c fclose(file);

这样就可以实现通过C语言读取txt文件中的数据,并跳过标题和表头,直接读取有效数据。如果你需要进一步处理每一行数据,可以使用字符串处理函数(如strtok)将每一行的数据拆分为多个字段。希望能对你有所帮助!如果有进一步的问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^