#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

08-17 00:54