我最近写了一段代码来计算文本文件中的行数,但是,while循环部分无法正常工作并永远循环。任何人都可以帮助我找出这段代码的问题吗?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp;
int main() {
fp=fopen("C:\\Users\\Alan\\Desktop\\text.txt","r");
int i=0;
while(!feof(fp)){
i++;
}
fclose(fp);
printf("The Number Of Sentence In That File: %d",i);
getch();
}
问题在于,通过调用不能进行前进feof(fp)
,因此在文件开始时执行停止。您需要显式调用诸如此类的东西getchar(), fscanf(), fgetc(),
。这是一个示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp;
int main() {
fp=fopen("test.txt","r");
int i=0, ch=0;
while((ch = fgetc(fp)) > 0){
if(ch == '\n')
i++;
}
fclose(fp);
printf("The Number Of Sentence In That File: %d\n",i);
getchar();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句