我有一个文件,我需要从中读取数据。我必须读取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);
}
每次编译和运行此软件时,由于某种原因它都会崩溃。有没有解决方案?
答案 0 :(得分:1)
您尚未为input.name
分配任何值,但您将其垃圾值传递给fscanf
。在尝试使用该值之前,需要为变量赋值。
答案 1 :(得分:0)
将您的结构更改为以下内容:
typedef struct seats{
int number, reserved;
char name[1000];
} seats;
并在printf(...)之后放一个fflush(stdin)