我有一个文本文件,其中包含以下三行:
12 5 6
4 2
7 9
我可以使用 fscanf
函数读取前三个值并将它们存储在三个变量中。但是我无法读取其余部分。
我尝试使用 fseek
函数,但它只适用于二进制文件。请帮助我将所有值存储在整数变量中。
fscanf
的简单解决方案:void read_ints (const char* file_name)
{
FILE* file = fopen (file_name, "r");
int i = 0;
fscanf (file, "%d", &i);
while (!feof (file))
{
printf ("%d ", i);
fscanf (file, "%d", &i);
}
fclose (file);
}
fscanf
并将 printf
放在 fscanf
下面。 - KKKKKfscanf(file,"%d %d %d %d %d %d %d",&line1_1,&line1_2, &line1_3, &line2_1, &line2_2, &line3_1, &line3_2);
fscanf
中的空格会匹配任何空格的多个出现,直到找到下一个标记为止。fscanf()
返回的结果是否为7,否则就意味着出了问题。 - Jonathan Leffler
fseek()
在文本文件上运行良好,但不清楚为什么需要使用它来读取您展示的数据。 - Jonathan Leffler