// 保存记录到文件 void saveEmployeeRecords() { FILE *fp; fp = fopen("employee.dat", "wb"); if (fp == NULL) { printf("文件打开失败\n"); return; } fwrite(&employeeCount, sizeof(int), 1, fp); fwrite(employeeList, sizeof(Employee), employeeCount, fp); fclose(fp); printf("员工绩效记录已保存到文件\n"); 怎么解决打开乱码的问题
时间: 2024-01-16 19:03:09 浏览: 65
ff.rar_C++ FILE* ff_ff文件系统_文件操作_精简文件系统
如果你在打开保存的文件时仍然出现乱码,可能是因为在读取文件时没有按照正确的格式读取数据。可以尝试使用以下代码读取保存的二进制文件:
```c
void loadEmployeeRecords() {
FILE *fp;
fp = fopen("employee.dat", "rb");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
fread(&employeeCount, sizeof(int), 1, fp);
employeeList = (Employee*) malloc(sizeof(Employee) * employeeCount);
fread(employeeList, sizeof(Employee), employeeCount, fp);
fclose(fp);
printf("员工绩效记录已从文件加载\n");
}
```
这个函数在打开文件时使用了二进制模式打开文件,然后使用 `fread()` 函数按照二进制格式读取数据。在读取数据之前,需要先分配足够的内存空间来存储读取的数据,例如在这个例子中,我们使用 `malloc()` 函数分配了 `employeeCount` 个 `Employee` 结构体的内存空间。读取数据完成后,需要使用 `fclose()` 函数关闭文件。
阅读全文