void ModifyFile() { system("cls"); Menu1(); book stu; FILE *fp; char x[8]; printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("请输入图书id:"); scanf("%s", x); fp = fopen("book1.dat", "rb+"); if (fp == NULL) { printf("文件打
时间: 2023-07-11 11:00:04 浏览: 158
stuinf.rar_Stuinf*getnext_Stuinf*stu_stuinf
开失败!\n"); return; } fseek(fp, 0, SEEK_SET); while (fread(&stu, LEN, 1, fp)) { if (strcmp(x, stu.id) == 0) { printf("请重新输入图书id: "); scanf("%s", stu.id); printf("请重新输入书名: "); scanf("%s", stu.name); printf("请重新输入书籍作者 : "); scanf("%s", stu.author); printf("请重新输入价格: "); scanf("%f", &stu.price); fseek(fp, -LEN, SEEK_CUR); fwrite(&stu, LEN, 1, fp); printf("修改成功!\n"); break; } } fclose(fp); }
这段代码的功能是修改存储在二进制文件book1.dat中的图书信息。首先要求用户输入要修改的图书的id,然后打开文件,利用fseek函数从文件的开头开始遍历所有图书,查找到要修改的图书信息后,允许用户输入新的图书信息,再利用fseek函数回到该图书信息在文件中的位置,用fwrite函数将新的图书信息写入文件中,完成修改操作。
阅读全文