如何在C++的排序文件中插入数据
How to insert data in sorted file in C++?
我需要在C++的文件中插入数据。我需要插入名字和姓氏。文件中的所有行首先按姓氏排序,然后按名字排序。所以我的问题是当我插入新行时,如何在正确的位置插入并且所有记录仍然被排序?
使用此代码,我只是将数据附加到文件中,但不知道如何排序`
string fName,lName;
cout<<"Insert Last Name: "<<endl;
cin>>lName;
cout<<"Insert First Name: "<<endl;
cin>>fName;
ofstream myfile("sort.dat",ios::app);
myfile<<fName<<" "<<lName;`
即使您发布的代码,也有多种工作:
- 在处理任何输入之前,您需要检查输入是否成功。否则,例如,您可能会将空字符串插入到文件中,从而可能损坏其内容。
- 在附加新内容时,几乎可以肯定需要在目标文件中放置换行符。
例如,您的输入可能如下所示:
std::string fName, lName;
if (std::cout << "Insert last name: "
&& std::cin >> lName
&& std::cout << "Insert first Name: "
&& std::cin >> fName) {
// now do something with the read values
}
else {
// deal with the error
}
下一步是"插入到文件中":这不起作用。对文件进行排序必然会更少!相反,您将文件复制到新目标并在适当的位置插入记录的内容
- 读取现有文件的每一行。如果记录小于新记录,请写入该记录并转到第 1 行。
- 写入新记录。
- 写入已读记录。
- 复制原始文件的其余内容。
- 关闭这两个文件。 删除原始文件
- 并将新文件重命名为原始文件的名称。
我可以输入代码,但我真的不需要阅读/写入文件的练习。
相关文章:
- 逐行读取文件,并将数据插入变量和数组中
- 如何在C++中.txt文件的开头插入字符串
- 从人员矢量插入和读取文件时出错
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- 在另一个字符串中插入文件扩展名之前的字符串
- 如何在文本文件中间插入字符
- C++2D网格数组,从文件中读取和插入数组值
- 在控制台上输出我从文件中读取的整数,将程序插入无限循环
- 在排序链表中插入结构并将其写入二进制文件
- 如何在 c++ 中将文件中的无空格插入器读取到数组中?
- 为什么 MFC .rc 文件有时会在末尾手动插入 \0?
- C++,如何从文件中读取数据并插入容器:地图
- 在文本文件的某些行和列上插入值
- 将文本文件插入2D矢量C
- 如何在使用 c++/COM 发送时在电子邮件中插入/嵌入图像文件(.png)
- 将文本文件单词插入 AVL
- 在文本文件中在特定行中插入线
- 将整数从文本文件插入到整数数组
- 使用c++将值从文件插入到函数中
- 在Qt中从csv文件插入值到矢量时出错