void deleteCar() { CAR car; char findID[20]; printf("\n车辆信息输入\n"); printf("请输入要删除的车牌号:"); scanf("%s", findID); pFile = fopen("info.dat", "rb+"); rewind(pFile); int flag = 0; while(fread(&car,sizeof(CAR),1,pFile)){ if (strcmp(car.number, findID) == 0){ flag = 1; carCount--; fseek(pFile, -sizeof(CAR), 1); fwrite(&car,sizeof(CAR),1,pFile); printf("车辆信息已删除\n"); break; } else{ continue; } } if (flag ==0) { printf("没有该车辆信息\n"); } system("pause"); }修正代码
时间: 2024-03-31 08:32:37 浏览: 93
void deleteCar() {
CAR car;
char findID[20];
printf("\n车辆信息输入\n");
printf("请输入要删除的车牌号:");
scanf("%s", findID);
pFile = fopen("info.dat", "rb+");
rewind(pFile);
int flag = 0;
while(fread(&car,sizeof(CAR),1,pFile)){
if (strcmp(car.number, findID) == 0){
flag = 1;
carCount--;
fseek(pFile, -sizeof(CAR), SEEK_CUR); // 修正点1:使用 SEEK_CUR
fwrite(&car,sizeof(CAR),1,pFile);
printf("车辆信息已删除\n");
break;
}
}
if (flag == 0) {
printf("没有该车辆信息\n");
}
fclose(pFile); // 修正点2:关闭文件指针
system("pause");
}
相关问题
void deleteCar() { CAR car; char findID[20]; printf("\n车辆信息输入\n"); printf("请输入要删除的车牌号:"); scanf("%s", findID); pFile = fopen("info.dat", "rb+"); rewind(pFile); int flag = 0; while(fread(&car,sizeof(CAR),1,pFile)){ if (strcmp(car.number, findID) == 0){ fla
void deleteCar() {
CAR car;
char findID[20];
printf("\n车辆信息删除\n");
printf("请输入要删除的车牌号:");
scanf("%s", findID);
pFile = fopen("info.dat", "rb+");
if (pFile == NULL) {
printf("文件打开失败!\n");
return;
}
rewind(pFile);
int flag = 0;
while(fread(&car,sizeof(CAR),1,pFile)){
if (strcmp(car.number, findID) == 0){
flag = 1;
fseek(pFile, -sizeof(CAR), SEEK_CUR);
CAR emptyCar = {"", "", "", ""}; // 定义一个空的CAR结构体,用于清空文件中的数据
fwrite(&emptyCar, sizeof(CAR), 1, pFile);
printf("删除成功!\n");
break;
}
}
if (flag == 0) {
printf("未找到该车辆信息,删除失败!\n");
}
fclose(pFile);
system("pause");
}
void deleteCar() { CAR car; char findID[20]; printf("\n车辆信息输入\n"); printf("请输入要删除的车牌号:"); scanf("%s", findID); pFile = fopen("info.dat", "rb+"); rewind(pFile); int flag = 0; while(fread(&car,sizeof(CAR),1,pFile)){ if (strcmp(car.number, findID) == 0){ flag = 1; carCount--; fseek(pFile, -sizeof(CAR), 1); fwrite(car,sizeof(CAR),1,pFile); printf("车辆信息已删除\n"); break; } else{ continue; } } if (flag == 0) { printf("没有该车辆信息\n"); } system("pause"); }实现车辆信息删除
这段代码实现了车辆信息的删除功能。函数中定义了一个结构体 CAR,表示车辆信息。函数首先让用户输入要删除的车牌号 findID,然后打开一个名为 info.dat 的二进制文件,每次读取一个 CAR 结构体,判断其车牌号是否等于 findID,如果是,就将 flag 设为 1,表示找到了要删除的车辆信息。然后将文件指针回退一个结构体大小,使用 fwrite 函数将当前结构体的内容覆盖掉原来的内容,相当于删除了该车辆信息。最后输出车辆信息已删除的提示信息。如果在文件中没有找到要删除的车辆信息,就输出没有该车辆信息的提示信息。最后通过 system 函数暂停一下程序,等待用户按任意键继续操作。
阅读全文