二进制文件还是存txt
文件里面每行都含有两个字符串
链表结构体
struct time
{
char h[25];
char m[25];
struct time* next;
}
怎么把链表的内容存到txt并且变成二进制文件,在把里面的内容弄到文件里
c语言把二进制文件里面的内容存到一个链表里面,再把链表里面的内容按格式放到文件里
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Gary_HanJR 2023-04-13 20:56关注
可以首先将链表数据写入文本文件,然后再将文本文件转换为二进制文件。可以按照以下步骤进行操作:
遍历链表,将每个节点中的两个字符串依次写入文本文件中,每行包含一个字符串,两个字符串之间可以用空格或者其他分隔符进行分割。
关闭文本文件。
打开以二进制方式写入的文件。
读取文本文件中的内容,将每个字符串转换为二进制后,依次写入二进制文件中。
关闭二进制文件。
以下是示例代码:
#include <iostream> #include <fstream> using namespace std; struct time { char h[25]; char m[25]; time* next; }; void writeToTextFile(time* head, const char* fileName) { ofstream outFile(fileName); if (!outFile.is_open()) { cout << "failed to open " << fileName << " for writing" << endl; return; } time* current = head; while (current != nullptr) { outFile << current->h << " " << current->m << endl; current = current->next; } outFile.close(); } void convertTextFileToBinaryFile(const char* textFileName, const char* binaryFileName) { ifstream inFile(textFileName); if (!inFile.is_open()) { cout << "failed to open " << textFileName << " for reading" << endl; return; } ofstream outFile(binaryFileName, ios::binary); if (!outFile.is_open()) { cout << "failed to open " << binaryFileName << " for writing" << endl; inFile.close(); return; } string h, m; while (inFile >> h >> m) { outFile.write(reinterpret_cast<const char*>(&h), sizeof(h)); outFile.write(reinterpret_cast<const char*>(&m), sizeof(m)); } inFile.close(); outFile.close(); } int main() { time* head = new time; time* current = head; current->next = new time{ "01", "30", nullptr }; current = current->next; current->next = new time{ "12", "45", nullptr }; current = current->next; current->next = new time{ "20", "59", nullptr }; writeToTextFile(head->next, "times.txt"); convertTextFileToBinaryFile("times.txt", "times.bin"); return 0; }
此代码会创建一个包含三个节点的链表,每个节点中包含两个字符串,分别为小时和分钟。然后,该代码将链表数据写入文本文件"times.txt",之后将文本文件转换为二进制文件"times.bin"。
需要注意的是,在文本文件和二进制文件之间转换时,需要确保读写的方式要相同,这里使用的是"读文本写二进制"的方式。同时,也要注意文件存储路径和文件名的拼写,否则会导致文件读写失败。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
- ¥15 孟德尔随机化怎样画共定位分析图
- ¥18 模拟电路问题解答有偿速度
- ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
- ¥15 误删注册表文件致win10无法开启
- ¥15 请问在阿里云服务器中怎么利用数据库制作网站
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址