代码:
#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循环形式,但是没有运气。
我也知道有很多与阅读文本文件有关的主题,我已经阅读了,但是仍然有这个问题。
这个小程序应该打印出整个文本文件的行号和行本身。
#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建议的标签
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句