main()
{
FILE *fp;
char c;
int count=1;
fp=fopen("D:\file.txt","r");
printf("%d ",count);
c = fgetc(fp);
while(c!=EOF)
{
if(c=='\n')
{
count++;
printf("\n%d",count);
}
putchar(c);
c=fgetc(fp);
}
fclose(fp);
}
最佳答案
您还将打印刚刚从文件中读取的换行符,
改变
if(c=='\n') {
count++;
printf("\n%d ",count);
}
putchar(c);
到
if(c=='\n') {
count++;
printf("\n%d",count);
} else {
putchar(c);
}
或者,在打印行号时不打印换行符,
putchar(c);
if(c=='\n') {
count++;
printf("%d ",count);
}
你也必须改变
char c;
到
int c;
getchar()返回一个int,EOF是一个不能用char表示的值。
关于c - 我需要打印行号以及行内容,但我得到了 2 个不同行中的行号和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234897/