C语言录入文件后,关闭文件,再次打开文件,无法读取了。
发布网友
发布时间:2023-06-26 03:55
我来回答
共2个回答
热心网友
时间:2024-11-23 19:25
我这是正常的啊?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 2
struct ticket_1
{
int no;
char time[10];
char start[20];
char end[20];
float runtime;
int people;
int booked;
} t[N];
//struct ticket_1 t[N];
FILE *fp;
void save()
{
int i;
if((fp=fopen("ticket.txt","wb"))==NULL)
{
printf("cannot open this file.\n");
return;
}
for(i=0; i<N; i++)
{
if(fwrite(&t[i],sizeof(struct ticket_1),1,fp)!=1)
printf("file write error!");
}
fclose(fp);
}
void input()
{
int i;
printf(" ******请录入班次信息******\n");
printf("\n班次 发车时间 起点站 终点站 行车时间 额定数量 已订票人数\n");
for(i=0; i<N; i++)
scanf("%d %s %s %s %f %d %d",&t[i].no,t[i].time,t[i].start,t[i].end,&t[i].runtime,&t[i].people,&t[i].booked);
save();
}
void output()
{
int i;
if((fp=fopen("ticket.txt","rb"))==NULL)
{
printf("cannot open the file!");
return;
}
printf("\n班次 发车时间 起点站 终点站 行车时间 额定数量 已订票人数\n");
for(i=0; i<N; i++)
{
fread(&t[i],sizeof(struct ticket_1),1,fp);
printf("%d %s %s %-s %-.2f %-4d %-2d\n",t[i].no,t[i].time,t[i].start,t[i].end,t[i].runtime,t[i].people,t[i].booked);
}
fclose(fp);
}
int main(){
input();
output();
system("PAUSE");
return 0;
}
热心网友
时间:2024-11-23 19:25
写文件在关闭之前调用fflush()。追问fflush()怎么用?在书上没找到。