gpt4 book ai didi

c - 如何去除从文件中读取的垃圾值?

转载 作者:行者123 更新时间:2023-11-30 19:07:55 25 4
gpt4 key购买 nike

#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;
}

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

附件是我的示例输出。 (左边部分是我的文件内容)output

data.txt

最佳答案

#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;
}

关于c - 如何去除从文件中读取的垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com