fgetc不是从大txt文件的开头开始的

我在C工作,有一个617kb的文本文件,我试图用fgetc读取。 由于某种原因, fgetc在文件中随机启动。 我已经尝试移动文件指针以开始使用fseek没有成功。 我可以使用较小的文件来完成fgetc工作。 任何帮助表示赞赏。

样本输入是25,000行数据,类似于:

 Product 23 660 2366 3 237 09 2 3730 23734 23 773 241 46 

资源:

 #define _CRT_SECURE_NO_WARNINGS #include  #include  #include  void print(FILE *category){ int ch = 'a'; while ((ch = fgetc(category)) != EOF){ printf("%c", ch); } getchar(); } int main(void){ FILE *category = fopen("myFile", "r"); if (category == NULL){ puts("category file not found"); } else{ print(category); fclose(category); return 0; } } 

我怀疑问题出在其他地方。

这个程序的输出在哪里? 如果您将其发送到控制台,其回滚缓冲区将不会大到足以包含整个文件。 也许它只是看起来fgetc()在一个奇怪的地方开始。

尝试将此程序的输出转移到新的文本文件,并将此文件的大小与输入文件的大小进行比较,例如:

 ./category_print >output.txt