我用C语言制作一个带结构的程序。它必须从文本文件中读取一些文本并将其保存到结构中。当我打印结构时,我看到我的信息后面有一些随机数字和字符。有人能帮助我吗?
#include<stdio.h>
typedef struct {
char naam[32];
int telefoon;
} Persoon;
void drukadres(Persoon*);
int main(void)
{
Persoon p;
FILE *Bestand;
Bestand = fopen("Bestand.txt", "r");
while (fread(&p,sizeof(Persoon),1,Bestand)!=NULL)
{
drukadres(&p);
}
}
void drukadres(Persoon *p)
{
printf("%s %d", p->naam,p->telefoon);
}
这是在我的文本文件中:
Vincent 0473352787
Janssens 56445343445
谢谢!
答案 0 :(得分:2)
由于您的输入文件是文字,必须使用文字输入功能而不是二进制fread
!
您可以使用以下内容:
int main(void)
{
Persoon p;
FILE *Bestand;
char line[64];
int num = 0;
Bestand = fopen("Bestand.txt", "r");
while (fgets(line, sizeof(line), Bestand)!=NULL)
{
num += 1;
if (2 != sscanf("%31s %d", p.naam, &(p.telefoon))) {
fprintf(stderr, "Error line %d\n", num);
break;
}
drukadres(&p);
}
}