帮我在下面的代码添加一个字符串的存储void SaveData ( ) { FILE *fp = fopen ( FILE_NAME, "w" ); if ( fp == NULL ) { printf ( "无法打开文件 %s\n\n", FILE_NAME ); return; } WinList p = winlist; SqQueue q; int e; fprintf(fp, "%d %d\n", win.winlength, win.wintail); //首先存入窗口长度和窗口编号尾号 //依次写入每个窗口和队列信息 while ( p != NULL ) { fprintf ( fp, "%d %d %d %d %d %.2f %d\n", p->data.windowId, p->data.type, p->data.status, p->data.queue.front, p->data.queue.length, p->data.score.rating, p->data.score.servedCount ); //依次把队列中的元素写入文件中 q = p->data.queue; while ( q.length ) { //在依次把队列读取 DeQueue ( &q, &e ); fprintf ( fp, "%d\n", e ); } p = p->next; } if ( ferror ( fp )) { printf ( "写入文件 %s 出错!\n\n", FILE_NAME ); } else { printf ( "数据已保存到文件 %s\n\n", FILE_NAME ); } fclose ( fp ); }
时间: 2024-02-14 16:12:38 浏览: 19
可以在函数中添加一个字符串数组,用来存储需要保存的字符串,然后将该字符串数组写入文件中即可。修改后的代码如下:
void SaveData ( ) {
FILE *fp = fopen ( FILE_NAME, "w" );
if ( fp == NULL ) {
printf ( "无法打开文件 %s\n\n", FILE_NAME );
return;
}
WinList p = winlist;
SqQueue q;
int e;
char str[MAX_STR_LENGTH]; // 定义一个字符串数组,用来存储需要保存的字符串
fprintf(fp, "%d %d\n", win.winlength, win.wintail); //首先存入窗口长度和窗口编号尾号
//依次写入每个窗口和队列信息
while ( p != NULL ) {
sprintf(str, "%d %d %d %d %d %.2f %d\n", p->data.windowId, p->data.type, p->data.status,
p->data.queue.front, p->data.queue.length, p->data.score.rating, p->data.score.servedCount);
fprintf(fp, "%s", str); // 将字符串写入文件中
//依次把队列中的元素写入文件中
q = p->data.queue;
while ( q.length ) { //在依次把队列读取
DeQueue ( &q, &e );
sprintf(str, "%d\n", e);
fprintf ( fp, "%s", str ); // 将字符串写入文件中
}
p = p->next;
}
if ( ferror ( fp )) {
printf ( "写入文件 %s 出错!\n\n", FILE_NAME );
} else {
printf ( "数据已保存到文件 %s\n\n", FILE_NAME );
}
fclose ( fp );
}
需要注意的是,字符串数组的长度应该足够存储需要保存的字符串,否则可能会导致数据丢失或者写入文件失败。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)