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

时间:2015-01-10 21:13:27

标签: c output text-files

代码:

#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循环形式,但没有运气。

另外我知道有很多与阅读文本文件相关的主题,我已经阅读过但我仍然有这个问题..

1 个答案:

答案 0 :(得分:1)

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

#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

的建议添加标记