求大神解释有关c语言里代码的读写

void in()
{
int i, roomnum;
FILE * fpcustomer;
fpcustomer = fopen("customer.txt", "wb+");
FILE * fproom;
fproom = fopen("room.txt", "rb+");
for (i = 0; i < 6; i++)
{
fread(&roominf[i], sizeof(struct room), 1, fproom);//将文件中的信息读入。
}
printf("以下为现有的房间信息:\n");
for (i = 0; i < 6; i++)//输出先有房间入住情况。
{
printf("房间号:%d 价格:%d 入住情况(0为无人,1为有人):%d\n", roominf[i].roomnum, roominf[i].price, roominf[i].people);
}
printf("请选择您想入住的房间:");
scanf("%d", &roomnum);
roominf[roomnum - 100].people = 1;
//输入入住房客信息。
for (i = 0;; i++)
{
if (customerinf[i].name[0] == '\0')
break;
}
printf("请输入身份证号:");
scanf("%d", &customerinf[i].num);
printf("请输入姓名:");
scanf("%s", &customerinf[i].name);
printf("请输入性别:");
scanf("%s", &customerinf[i].sex);
printf("请输入联系方式:");
scanf("%d", &customerinf[i].phone);
customerinf[i].room = roomnum;
for (i = 0; i < 6; i++)
{
fwrite(&roominf[i], sizeof(struct room), 1, fproom);
}
fclose(fproom);
for (i = 0; i < 6; i++)
{
fwrite(&customerinf[i], sizeof(struct room), 1, fpcustomer);
}
fclose(fpcustomer);
printf("入住成功!\n");
}
代码本身貌似没错误,但运行完之后txt里什么都没有,并没有写入我需要的东西。
另:如何让txt里保存上次运行所输入的信息,还是他默认不会删除

c

2个回答

这段代码本身是没有什么问题的,但是你说运行完后,txt文件里什么都没有。有可能是你的文件路径出现错误之类的原因。建议使用文件流操作时都善用库函数返回值。txt文件是不会删除输入的信息的。

**fpcustomer = fopen("customer.txt", "at+");

  • * * ****可以向.txt文件中写入,******
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐