void modifyCar() { int findID[10]; printf("\n车辆信息修改\n"); printf("请输入要修改车辆信息的车牌号:"); scanf("%d", &findID); int i; for (i = 0; i < carCount; i++) { if (number[i].number == findID) { printf("车主姓名:%s\n车牌号:%s\n车辆颜色:%s\n车辆型号:%s\n", number[i].name, number[i].number, number[i].color, number[i].kind); printf("\n请输入修改信息\n"); printf("车主姓名:"); scanf("%s",number[i].name); fseek(pFile, -sizeof(CAR), 1); fwrite(&car, sizeof(CAR), 1, pFile); printf("车牌号:"); scanf("%s",number[i].number); fseek(pFile, -sizeof(CAR), 1); fwrite(&car, sizeof(CAR), 1, pFile); printf("车辆颜色:"); scanf("%s",number[i].color); fseek(pFile, -sizeof(CAR), 1); fwrite(&car, sizeof(CAR), 1, pFile); printf("车辆型号:"); scanf("%s",number[i].kind); fseek(pFile, -sizeof(CAR), 1); fwrite(&car, sizeof(CAR), 1, pFile); printf("信息已修改\n"); break; } } if (i == carCount) { printf("没有该车辆信息\n"); } system("pause"); }修改代码
时间: 2024-03-31 12:37:39 浏览: 68
这段代码存在一些问题,修改后的代码如下:
void modifyCar() {
char findID[10]; // 将查找车牌号的变量类型改为 char 数组
printf("\n车辆信息修改\n");
printf("请输入要修改车辆信息的车牌号:");
scanf("%s", findID); // 将查找车牌号的变量改为 char 数组后,使用 %s 格式化字符串读取输入
int i;
for (i = 0; i < carCount; i++) {
if (strcmp(number[i].number, findID) == 0) { // 使用 strcmp 函数比较两个字符串是否相等
printf("车主姓名:%s\n车牌号:%s\n车辆颜色:%s\n车辆型号:%s\n", number[i].name, number[i].number, number[i].color, number[i].kind);
printf("\n请输入修改信息\n");
printf("车主姓名:");
scanf("%s", number[i].name);
fseek(pFile, -sizeof(CAR), SEEK_CUR); // 将 fseek 第二个参数改为 SEEK_CUR,表示从当前位置偏移
fwrite(&number[i], sizeof(CAR), 1, pFile); // 将 fwrite 的第二个参数改为 &number[i],表示将修改后的当前车辆信息写入文件
printf("车牌号:");
scanf("%s", number[i].number);
fseek(pFile, -sizeof(CAR), SEEK_CUR);
fwrite(&number[i], sizeof(CAR), 1, pFile);
printf("车辆颜色:");
scanf("%s", number[i].color);
fseek(pFile, -sizeof(CAR), SEEK_CUR);
fwrite(&number[i], sizeof(CAR), 1, pFile);
printf("车辆型号:");
scanf("%s", number[i].kind);
fseek(pFile, -sizeof(CAR), SEEK_CUR);
fwrite(&number[i], sizeof(CAR), 1, pFile);
printf("信息已修改\n");
break;
}
}
if (i == carCount) {
printf("没有该车辆信息\n");
}
system("pause");
}
修改的主要内容包括:
1.将查找车牌号的变量类型改为 char 数组。
2.使用 strcmp 函数比较两个字符串是否相等。
3.将 fseek 第二个参数改为 SEEK_CUR,表示从当前位置偏移。
4.将 fwrite 的第二个参数改为 &number[i],表示将修改后的当前车辆信息写入文件。
阅读全文