0

我正在使用 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 <stdio.h>
#include <string.h>
#include <stdlib.h>

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;
    }

}
4

1 回答 1

0

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

这个程序的输出去哪儿了?如果您将它发送到控制台,它的回滚缓冲区将不足以容纳整个文件。也许它只是看起来像是fgetc()从一个奇怪的地方开始。

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

./category_print >output.txt
于 2013-12-03T01:35:21.607 回答