void deleteCar() { int findID; printf("\n车辆信息输入\n"); printf("请输入要删除的车牌号:"); scanf("%d", &findID); int i, j; for (i = 0; i < carCount; i++) { if (number[i].number == findID) { for (j = i; j < carCount - 1; j++) { number[j] = number[j + 1]; } carCount--; fseek(pFile, -sizeof(CAR), 1); fwrite(&car,sieof(CAR),1,pFile); printf("车辆信息已删除\n"); break; } } if (i == carCount) { printf("没有该车辆信息\n"); } system("pause"); }修改代码
时间: 2024-03-24 13:39:50 浏览: 54
linux C 打印错误信息和标准输入输出详细介绍
根据您提供的代码,我看到有以下几个问题:
1. 在删除车辆信息时,您使用了 `fwrite` 函数,但是却没有指定写入的内容。应该将 `number` 数组中删除了一个元素后的所有元素重新写入文件中。
2. 在使用 `fseek` 函数时,第二个参数应该是 `SEEK_CUR`,表示相对于当前位置进行偏移。
3. 在使用 `sizeof` 函数时,应该使用正确的变量名称,即 `sizeof(CAR)`,而不是 `sieof(CAR)`。
下面是修改后的代码:
```
void deleteCar() {
int findID;
printf("\n车辆信息输入\n");
printf("请输入要删除的车牌号:");
scanf("%d", &findID);
int i, j;
for (i = 0; i < carCount; i++) {
if (number[i].number == findID) {
for (j = i; j < carCount - 1; j++) {
number[j] = number[j + 1];
}
carCount--;
fseek(pFile, -(int)sizeof(CAR), SEEK_CUR);
fwrite(&number, sizeof(CAR), carCount, pFile);
printf("车辆信息已删除\n");
break;
}
}
if (i == carCount) {
printf("没有该车辆信息\n");
}
system("pause");
}
```
阅读全文