C - 如何读取整数文件直到文件结尾

时间:2015-04-26 23:01:08

标签: c

我正在创建一个程序,它从输入文件中读取值并将它们存储到一个二维数组中。我无法弄清楚如何结束"读入"循环在文件的末尾,因为我使用整数而EOF不是整数。

目前它将创建一个无限循环。

//      while(?????)
     {
            //printf("Test");
            fscanf(fp, "%d", &x);
            fscanf(fp, "%d", &y);
            fscanf(fp, "%d", &val);
            fscanf(fp, "%d", &val2);
            fscanf(fp, "%d", &price);
            grid[x][y] = 1;
            grid[y][x] = 1;
     }

示例文件输入

0 3 300 305 20
0 4 300 313 20
0 5 300 306 20
0 2 300 301 20
1 0 301 302 20
1 5 304 308 8
1 4 310 315 20
2 5 312 324 30

2 个答案:

答案 0 :(得分:3)

只要fscanf读取五个值,while就会继续,并在到达文件末尾时停止。

while( ( fscanf ( fp, "%d %d %d %d %d", &x, &y, &val, &val2, &price)) == 5)
{
    grid[x][y] = 1;
    grid[y][x] = 1;
}

答案 1 :(得分:-1)

使用!feof(fp)作为while循环的条件