我在某处看到了这段代码:
#include<stdio.h>
int main()
{
FILE * fp;
char s[1024];
fp = fopen("file","r");
while( fscanf(fp, "%s", s ) != EOF )
{
puts(s);
}
return 0;
}
我希望这将继续在无限循环中打印文件的第一个单词。我相信将文件指针作为输入只是为了获取应该读取输入的点,并且 fscanf 将有一个本地文件指针,它将用于读取文件。
但是在运行时我意识到它实际上打印了整个文件。我能得出的唯一结论是,在读取第一个输入后,它实际上将传递的文件指针向前移动,否则它会一次又一次地继续打印第一个单词。
我看到了fscanf 的man 文档,但在阅读后找不到有关文件指针移动的任何内容。
有人可以解释或提供指定传递的文件指针在读取后实际移动的来源吗?