代码:
#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循环形式,但没有运气。
另外我知道有很多与阅读文本文件相关的主题,我已经阅读过但我仍然有这个问题..
答案 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