我正在解决这个问题:
编写程序以读取文件并显示其行号的内容。
这是我编写的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void lineprint(int *line){
*line=*line+1;
printf ("Line %d",line);
}
int main(){
FILE *fp;
fp=fopen("sample.txt","r");
if (fp==NULL){
printf ("File not Found");
exit(0);
}
else {
int line=1;
printf ("Line %d\n",line);
while ((fgetc (fp))!=EOF){
printf ("%c",fgetc(fp));
if ((fgetc(fp))=='\n'){
lineprint(&line);
}
}
}
fclose (fp);
return 0;
}
但是,我得到了垃圾输出。请帮忙。
因此,基本上,当您调用fgetc()时,结构FILE的内部指针返回文件中的第一个char大小数据,并将指针移动sizeOf(char)。你也没有增加线的价值。我对代码做了一些调整,并且可以正常工作。
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fp;
int letter;
fp=fopen("test.txt","r");
if (fp==NULL){
printf ("File not Found");
exit(0);
}
else {
int line=1;
printf ("Line %d\n",line);
while ((letter = fgetc(fp))!=EOF){
printf ("%c",letter);
if (letter =='\n'){
line++;
printf ("Line %d\n",line);
}
}
}
fclose (fp);
return 0;
}
希望对您有帮助,如果您有任何疑问,我将很乐意为您解答=)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句