如果我打开一个文件并使用fscanf来读取这样的文件:
2 41
1 50
1 46
....
如何告诉C读取第一个数字并将其存储为变量,然后将第二个数字存储为另一个变量,运行循环,然后转到下一个数组?
答案 0 :(得分:0)
有关fscanf
的一些提示:
始终检查返回值。如果您要求一个整数,如果成功扫描,则应返回1
。其他返回值包括0
或EOF
,这可能表示读取失败,或未能找到与提供的模式匹配的数据。
除非格式规范包含[
,c
或n
说明符,否则通常会忽略空白字符。
始终检查返回值。
while(1)
{
int result;
int firstNumber;
int secondNumber;
result = fscanf (file, "%d%d", &firstNumber, &secondNumber);
if (result == 2)
{
printf("Scanned two numbers, %d and %d\n", firstNumber, secondNumber);
}
else
{
if (result != EOF)
puts("An error occurred");
break;
}
}
答案 1 :(得分:0)
这样的循环就是你所追求的:
int type, stories;
while (fscanf(buildingFile, "%d %d", &type, &stories) == 2)
{
printf("Got type=%d, stories=%d\n", type, stories);
/* Do something with 'type' and 'stories' */
}
if (ferror(buildingFile))
{
perror("buildingFile");
}