改善上述代码
时间: 2023-07-03 11:28:13 浏览: 50
这段代码在每次循环中都会打开文件,并且没有关闭文件,这样会导致文件句柄泄漏和性能问题。建议将文件的打开和关闭操作放在循环外面,只需要打开一次,修改完毕后再关闭。另外,建议使用更安全的文件操作函数,如 `fopen_s` 和 `fclose`。修改后的代码如下:
```
if ((fp = fopen_s(&filename_m, "w+", "r")) == NULL) {
printf("无法打开此文件\n");
exit(0);
}
for (o = 0; o < k; o++) {
printf("请输入您需要领取物资的名称或编号:");
scanf("%s", &h);
for (i = 0; i < 6; i++) {
if (strcmp(h, s[i].num) == 0 || strcmp(h, s[i].goods) == 0) {
printf("请输入领取的数量:");
scanf("%d", &j);
if (j <= s[i].count) {
s[i].count = s[i].count - j;
printf("领取成功\n");
}
else {
printf("很抱歉,库存不足,领取失败。\n");
}
for (i = 0; i < 6; i++) {
fprintf(fp, "%10s%10s%10.2lf%20lf%10s\n", s[i].num, s[i].goods, s[i].price, s[i].count, s[i].cosumer);
}
}
}
}
fclose(fp);
```
这样修改后,文件操作就更加安全和高效了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)