#include "stdio.h"
main( ) {
FILE *fp1;
char oneword[100];
char *c;
fp1 = fopen("TENLINES.TXT","r");
do {
c = fgets(oneword, 100 ,fp1); /* get one line from the file */
if (c != NULL)
printf("%s", oneword); /* display it on the monitor */
} while (c != NULL); /* repeat until NULL */
fclose(fp1);
}
我不明白为什么这段代码需要一个char*c。char*c在这里做什么。我试着把所有的“c”改成“oneword”,但总是会出错。你能解释一下吗?
谢谢。
最佳答案
你读过fgets(3)的文档吗?失败时返回NULL
(例如,当到达文件末尾时)。
当然,您应该检查是否有以下故障:
fp1 = fopen("TENLINES.TXT","r");
if (!fp1)
{ perror("fopen TENLINES.TXT failure"); exit(EXIT_FAILURE); };
然后使用所有警告和调试信息(例如
gcc -Wall -Wextra -g
)编译并学习如何使用调试器(gdb
)