知道为什么我的打印功能打印然后永远运行?

时间:2015-04-07 22:01:17

标签: c

知道为什么我的打印功能打印然后在崩溃之前永远运行?

void readDataFile(){

    FILE* fp = fopen("text.txt","r");
    int t=0;
    while(fp !=EOF){
        text[t] = fgetc(fp);
        printf("%c",text[t]);
        t++;
    }

  fclose(fp);
}

2 个答案:

答案 0 :(得分:3)

检查编译器警告(例如:gcc -Wall file.c)。您应该在“while(fp!= EOF){”行上收到警告,表示您正在比较指向整数的指针。如果将while语句重写为:

,则该函数有效
while ((text[t] = fgetc(fp)) != EOF){
    printf("%c",text[t]);
    t++;
}

请注意,您需要在fgetc检索的字符中查找EOF,而不是在文件指针fp中查找。

答案 1 :(得分:-2)

您需要使用条件为true启动循环,然后在它变为false时结束循环。否则,循环不知道条件何时变为假,即它总是为真,因此它继续循环。我的视线。