知道为什么我的打印功能打印然后在崩溃之前永远运行?
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);
}
答案 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时结束循环。否则,循环不知道条件何时变为假,即它总是为真,因此它继续循环。我的视线。