如何删除从文件中读取的垃圾值? #包括 #包括 #包括 #包括 #包括 #定义N 50 结构访问者 { 字符名[20]; int-y; charpass[20]; 智力年龄; 内奥库; 浮动价格; }; main() { 结构访问者数据[N]; 文件*fdata; int i=1; fdata=fopen(“data.txt”,“r”);//读取模式 如果(fdata==NULL) { perror(“打开文件时出错。\n”); 退出(退出失败); } 其他的 { 而(EOF!=fscanf(fdata、%s\t、%d\t、%s\t、%d\t、%d\t、%d\t、.2f\n)、数据[i]。名称和数据[i]。y、数据[i]。通过和数据[i]。年龄和数据[i]。oku和数据[i]。价格)) { printf(“%s\t,%d\t,%s\t,%d\t,%d\t,%.2f\n”,数据[i]。名称,数据[i]。y,数据[i]。通行证,数据[i]。年龄,数据[i]。oku,数据[i]。价格); i++; } } fclose(fdata); 返回0; }

如何删除从文件中读取的垃圾值? #包括 #包括 #包括 #包括 #包括 #定义N 50 结构访问者 { 字符名[20]; int-y; charpass[20]; 智力年龄; 内奥库; 浮动价格; }; main() { 结构访问者数据[N]; 文件*fdata; int i=1; fdata=fopen(“data.txt”,“r”);//读取模式 如果(fdata==NULL) { perror(“打开文件时出错。\n”); 退出(退出失败); } 其他的 { 而(EOF!=fscanf(fdata、%s\t、%d\t、%s\t、%d\t、%d\t、%d\t、.2f\n)、数据[i]。名称和数据[i]。y、数据[i]。通过和数据[i]。年龄和数据[i]。oku和数据[i]。价格)) { printf(“%s\t,%d\t,%s\t,%d\t,%d\t,%.2f\n”,数据[i]。名称,数据[i]。y,数据[i]。通行证,数据[i]。年龄,数据[i]。oku,数据[i]。价格); i++; } } fclose(fdata); 返回0; },c,file,garbage,C,File,Garbage,结果,我的文件的所有内容都显示在屏幕的左侧,每行后面都有一些垃圾值。我上面的编码有什么问题吗?我应该如何消除垃圾值?请帮忙 附件是我的样本输出。(左边的是我的文件内容) #包括 #包括 #包括 #包括 #包括 #定义N 50 结构访问者{ 字符名[20]; int-y; charpass[20]; 智力年龄; 内奥库; 浮动价格; }; main(){ 结构访问者数据[N]; 文件*fdata; int i=1; fdata=fopen(“data.txt”,“r”);//读取模式 如果(fda

结果,我的文件的所有内容都显示在屏幕的左侧,每行后面都有一些垃圾值。我上面的编码有什么问题吗?我应该如何消除垃圾值?请帮忙

附件是我的样本输出。(左边的是我的文件内容)

#包括
#包括
#包括
#包括
#包括
#定义N 50
结构访问者{
字符名[20];
int-y;
charpass[20];
智力年龄;
内奥库;
浮动价格;
};
main(){
结构访问者数据[N];
文件*fdata;
int i=1;
fdata=fopen(“data.txt”,“r”);//读取模式
如果(fdata==NULL)
{
perror(“打开文件时出错。\n”);
退出(退出失败);
}
否则{
而(EOF!=fscanf(fdata、%19s%d%19s%d%d%f“,&Data[i]。名称,&Data[i]。y,&Data[i]。通行证,&Data[i]。年龄,&Data[i]。oku,&Data[i]。价格)){
printf(“%s\t,%d\t,%s\t,%d\t,%d\t,RM%.2f\n”,数据[i]。名称,数据[i]。y,数据[i]。通过,数据[i]。年龄,数据[i]。oku,数据[i]。价格);
i++;
}
}
fclose(fdata);
返回0;
}

为什么只将
fscanf()
s返回值与
EOF
进行比较?显示
data.txt
Read
sscanf
文档,了解其返回值。仅根据
EOF
对其进行测试是不够的。您还必须检查
sscanf
是否成功解析了您要求它解析的所有项目。作为第一步,读取变量的返回值以使事情更简单。@xing这很有意义。。天哪,我试了一整天终于解决了我的问题,非常感谢你,其他人也非常感谢你much@chux还是建议删除该问题为好?
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define N 50
struct Visitor
{
        char name[20];
        int y;
        char pass[20];
        int age;
        int oku;
        float price;
};

main()
{
        struct Visitor Data[N];

        FILE *fdata;
        int i = 1;

        fdata = fopen("data.txt", "r"); // read mode

        if (fdata == NULL)
        {
                perror("Error while opening the file.\n");
                exit(EXIT_FAILURE);
        }
        else
        {

                while (EOF != fscanf(fdata, "%s\t,%d\t,%s\t,%d\t,%d\t,%.2f\n", Data[i].name, &Data[i].y, Data[i].pass, &Data[i].age, &Data[i].oku, &Data[i].price))
                {

                        printf("%s\t,%d\t,%s\t,%d\t,%d\t,%.2f\n", Data[i].name, Data[i].y, Data[i].pass, Data[i].age, Data[i].oku, Data[i].price);
                        i++;
                }
        }
        fclose(fdata);
        return 0;
}
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<string.h>
#include <stdlib.h>
# define N 50
 struct Visitor{
  char name[20];
  int y;
  char pass[20];
  int age;
  int oku;
  float price;
 };

 main(){
  struct Visitor Data[N];

   FILE *fdata;
 int i=1;


   fdata = fopen("data.txt","r"); // read mode

   if( fdata == NULL )
   {
      perror("Error while opening the file.\n");
      exit(EXIT_FAILURE);
   }
   else{

  while (EOF!=fscanf(fdata,"%19s%d%19s%d%d%f", &Data[i].name, &Data[i].y, &Data[i].pass, &Data[i].age, &Data[i].oku, &Data[i].price )){

  printf("%s\t,%d\t,%s\t,%d\t,%d\t,RM%.2f\n", Data[i].name, Data[i].y, Data[i].pass, Data[i].age, Data[i].oku, Data[i].price);
i++;
  }



}

   fclose(fdata);
   return 0;
}