FILE *fp;
char name[50];
fp=fopen("stu.txt","r");
while(fgets(name,50,fp)!=NULL)
{
printf(" %s",name);
fgets(name,50,fp);
}
fclose(fp);
在我的档案中,4个不同的行有4个名字,但输出只显示第1和第3个名字。出了什么问题?我知道这是非常基本的,但这占用了我很多时间。
答案 0 :(得分:2)
你是(f)进入循环块内的while
语句和,这样你就可以在不利用你在内部调用中读到的内容的情况下提升文件位置。试试这个:
while(fgets(name,50,fp)!=NULL)
{
printf(" %s",name);
}
答案 1 :(得分:0)
从循环体中删除fgets
。 fgets
表达式中的while
已经完成了工作。
答案 2 :(得分:-2)
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break;
}
printf("%c", c);
}
fclose(fp);
return(0);
}