我正在创建一个程序,该程序从输入文件中读取值并将其存储到二维数组中。我不知道如何在文件末尾结束"读入"循环,因为我使用的是整数,而 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 200 4 300 313 200 5 300 306 200 2 300 301 201 0 301 302 201 5 304 308 81 4 310 315 202 5 312 324 30
只要fscanf
读取五个值,while 就会继续,并在到达文件末尾时停止。
while( ( fscanf ( fp, "%d %d %d %d %d", &x, &y, &val, &val2, &price)) == 5)
{
grid[x][y] = 1;
grid[y][x] = 1;
}
使用 !feof(fp)
作为 while 循环的条件