从结构中的文本文件中读取文本

时间:2015-01-12 15:32:39

标签: c

我用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

谢谢!

1 个答案:

答案 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);
    }
}