void saveTransactionsToFile() { int i; FILE *file = fopen("transactions.csv", "w"); if (file == NULL) { printf("无法打开文件\n"); return; } for (i = 0; i < numTransactions; i++) { fprintf(file, "%s,%s,%.2f,%s\n", transactions[i].date, transactions[i].category, transactions[i].amount, transactions[i].note); } fclose(file); printf("收支记录已保存到文件 transactions.csv\n"); } 优化下函数
时间: 2024-03-09 11:48:12 浏览: 159
UTL-FILE导出使用说明
可以考虑以下几个方面的优化:
1. 减少文件操作次数:可以将文件打开和关闭的操作放在函数外部,每次调用时传入文件指针,这样可以减少每次调用函数时的文件操作次数。
2. 使用 const 关键字:可以将不需要修改的参数声明为 const,这样可以增加程序的可读性和可维护性。
3. 使用更好的数据结构:可以考虑使用链表等高效的数据结构来存储收支记录,以提高程序的效率和扩展性。
优化后的函数代码如下:
```c
void saveTransactionsToFile(FILE *file, const Transaction *transactions, int numTransactions) {
int i;
for (i = 0; i < numTransactions; i++) {
fprintf(file, "%s,%s,%.2f,%s\n", transactions[i].date,
transactions[i].category, transactions[i].amount,
transactions[i].note);
}
printf("收支记录已保存到文件 transactions.csv\n");
}
```
调用方式示例:
```c
FILE *file = fopen("transactions.csv", "w");
if (file == NULL) {
printf("无法打开文件\n");
return;
}
saveTransactionsToFile(file, transactions, numTransactions);
fclose(file);
```
阅读全文