#include<stdio.h>
#include<math.h>
#include<string.h>
#define max 30
#include<stdlib.h>
typedef struct flight
{
char station;
int number;
char time;
}flight[max];
int i;//航班数
int n;//航班号
void usermenu()
{
printf("********************航班订票系统********************");
printf("* *\n");
printf("* 欢迎您, *\n");
printf("* *\n");
printf("* 请选择您要办理的业务 *\n");
printf("* 1. 列出所有航班 *\n");
printf("* 2. 查询航班余票 *\n");
printf("* 3. 订 票 *\n");
printf("* 4. 退 票 *\n");
printf("* 5. 列出我的订单 *\n");
printf("* 6. 退 出 *\n");
printf("****************************************************\n");
printf("请选择操作:\n");
}
void writein()
{
FILE *fp = fopen("flight.txt", "rb");
if (fp == NULL) {
printf("open file failed!\n");
exit(0);
}
int a;
printf("请输入需录入的航班数");
scanf("%d\n",i) ;
for(a=0;a<i;a++)
{
printf("请输入终点站\n");
scanf("%s",&flight[a].station);
printf("请输入票数\n");
scanf("%d",&flight[a].number);
printf("请输入起飞时间\n");
scanf("%s",&flight[a].time);
fprintf(fp,flight[a].station,flight[a].number,flight[a].time);
}
fclose(fp);
}
int main()
{
/* if(start()==1)
{
user();
}
else
adminer();*/
// printall();
writein();
return 0;
}
结果显示flight前的预期表达错误,应该怎么改正
输入 %d 后面的 换行符去掉
%d 输入的变量 ,要加上 取地址 &
修改如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#define max 30
#include<stdlib.h>
typedef struct flight
{
char station[100];
int number;
char time[20];
}ft;
ft f[max];
int i;//航班数
int n;//航班号
void usermenu()
{
printf("********************航班订票系统********************");
printf("* *\n");
printf("* 欢迎您, *\n");
printf("* *\n");
printf("* 请选择您要办理的业务 *\n");
printf("* 1. 列出所有航班 *\n");
printf("* 2. 查询航班余票 *\n");
printf("* 3. 订 票 *\n");
printf("* 4. 退 票 *\n");
printf("* 5. 列出我的订单 *\n");
printf("* 6. 退 出 *\n");
printf("****************************************************\n");
printf("请选择操作:\n");
}
void writein()
{
FILE *fp = fopen("flight.txt", "w");
if (fp == NULL) {
printf("open file failed!\n");
exit(0);
}
int a;
printf("请输入需录入的航班数: ");
scanf("%d", &i);
getchar();
for(a=0;a<i;a++)
{
printf("请输入终点站\n");
scanf("%s",f[a].station);
getchar();
printf("请输入票数\n");
scanf("%d",&f[a].number);
printf("请输入起飞时间\n");
scanf("%s",f[a].time);
getchar();
fprintf(fp,"%s %d %s", f[a].station,f[a].number,f[a].time);
}
fclose(fp);
}
int main()
{
/* if(start()==1)
{
user();
}
else
adminer();*/
// printall();
writein();
return 0;
}