尝试从文件C读取时出错

时间:2016-06-02 18:24:36

标签: file input

我有一个文件,我需要从中读取数据。我必须读取2个int和1 c字符串。 这是我的结构

typedef struct seats
{
int number, reserved;
char * name;
} seats;

这是我的主要

FILE *data;
seats input;
data = fopen("data.txt", "r+");
while(fscanf(data,"%s %d %d", input.name, &input.number, &input.reserved) != EOF)
{
    printf("%s %d %d", input.name, input.number, input.reserved);
}

每次编译和运行此软件时,由于某种原因它都会崩溃。有没有解决方案?

2 个答案:

答案 0 :(得分:1)

您尚未为input.name分配任何值,但您将其垃圾值传递给fscanf。在尝试使用该值之前,需要为变量赋值。

答案 1 :(得分:0)

将您的结构更改为以下内容:

typedef struct seats{
    int number, reserved;
    char name[1000];
} seats;

并在printf(...)之后放一个fflush(stdin)