我正在创建一个程序,它从输入文件中读取值并将它们存储到一个二维数组中。我无法弄清楚如何结束"读入"循环在文件的末尾,因为我使用整数而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
答案 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循环的条件