读取 C 中文本文件问题中的每一行

reading every line in a text file issue in C

代码:

#define maxWords 200
//finput is the file
char tempWord[maxWords];
(for i = 0; i < lineCounter(f); i++)
{
     fgets(tempWord, maxWords, finput);
     printf("%s", tempWord);
}

lineCounter 函数工作正常,并在文本文件中输出正确数量的行。但出于某种原因,它只打印了 1500 行中的 150 行,我不明白。我一直在尝试其他功能,例如 fscanf 和其他功能,但我仍然遇到同样的问题。他们都打印出文本而不是整个文本文件。

即使我将 i < 1500 作为 for 循环中的条件,我仍然有这个问题。有谁知道为什么?我也尝试过 while-loop 形式,但没有成功。

我也知道有很多与读取文本文件相关的主题,我已经阅读了它们,但我仍然有这个问题..

这个小程序应该打印出整个文本文件的行号和行本身。

#define INPUT_FILE 1
#define LINE_LEN 200

int main(int argc, char *argv[]) {
    int line_num;
    char string[LINE_LEN];
    FILE *file;
    if((file = fopen(argv[INPUT_FILE], "r")) == NULL) {
        fprintf(stderr, "Could not open input file\n");
        exit(1);
    }
    line_num = 1;
    while( fgets(string, LINE_LEN, file) != NULL ) {
        line_num++
        printf( "Line %d: <%s>\n", line_num, string);
    }
    return 0;
}

编辑: 将 line_num 初始化为 1 并按照@chux

的建议添加标签