从文件中读取字符串

时间:2016-08-17 20:56:04

标签: c string io

 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个名字。出了什么问题?我知道这是非常基本的,但这占用了我很多时间。

3 个答案:

答案 0 :(得分:2)

你是(f)进入循环块内的while语句,这样你就可以在不利用你在内部调用中读到的内容的情况下提升文件位置。试试这个:

while(fgets(name,50,fp)!=NULL)
{
  printf(" %s",name);
}

答案 1 :(得分:0)

从循环体中删除fgetsfgets表达式中的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);
   }