我使用这个小程序来了解 ftell 是如何工作的。我创建了一个 txt 文件,然后输入“15”,然后在第二行输入“no”。所以我期望它打印 0,然后在它读取 15 之后,打印 2,然后因为 no 在第二行,这意味着我在第一行留下了一些“可用点”,我可以用更多字符填充我希望它打印的数字肯定大于 7(这是它实际打印的)。为什么?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int x;
char box[10];
fp = fopen("test.txt", "r");
printf("%ld", ftell(fp));
fscanf(fp,"%d",&x );
printf("\n%ld", ftell(fp));
fscanf(fp, "%s", box);
printf("\n%ld\n", ftell(fp));
}
输出:0 2 7