如何在C中跳过输入文件的第一行?

时间:2016-03-29 22:51:17

标签: c file input file-io output

我是C编程的新手。我有一个输入文件,我想跳过输入文件的第一行,并尝试撰写输出文件。我的文件包含一些图形信息。我想从输入文件中获取u,v,w值,而不是用户输入。但是我对u,v,w没有任何价值。

printf("Enter (u v w):\n");
    for(i = 0; i < edges; ++i){
        scanf("%d%d%d", &u, &v, &w);
     }

我试过这样:

fgets(buffer, 1024, inputFile);       
        while( ( ch = fgetc(inputFile) ) != EOF )   
        {
         sscanf(buffer, "%d%d%d", &u, &v, &w);
          }

1 个答案:

答案 0 :(得分:2)

也许是这样的:

fscanf(inputFile, "%*[^\n]"); // Read and discard a line
while(fscanf(inputFile, "%d%d%d", &u, &v, &w) == 3 )   
{
    ...
}

示例代码:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int u, v, w;
    FILE *fp;
    fp = fopen("data.txt", "r");
    if (!fp)
    {
        perror("fopen()");
        exit(EXIT_FAILURE);
    }
    fscanf(fp, "%*[^\n]");  // Read and discard a line
    while (fscanf(fp, "%d%d%d", &u, &v, &w) == 3)
    {
        printf("%d %d %d\n", u, v, w);
    }
    fclose(fp);
}

data.txt中

1 2 3
4 5 6
7 8 9

输出:

4 5 6
7 8 9