c++ 如何实现打乱txt文件行

yeye12354 2012-09-12 08:56:44
假如有1.txt文件内容是:
aaaaaaa
bbbbbbb
ccccccc
ddddddd

随机打乱后有可能是:
ddddddd
bbbbbbb
aaaaaaa
ccccccc



由于文件数据量大,进行打乱处理越快越说。最好提供一下代码,谢谢!
...全文
329 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongwenjun 2012-09-12
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <sstream>
#include <string>
#include <map>
#include <unordered_map>

int main()
{
using namespace std;
unordered_map<string, string> ss ;

fstream ifile("ttt.txt" , ios_base::in | ios_base::binary);


string line;
size_t ln = 0;
char id[12] = {0}; // 行首两字节 + 行数做 id

while (getline(ifile , line)) {
if (!isspace(line[0]) && line.size() > 2) {
id[0] = line[0];
id[1] = line[1];
} else {
id[0] = 'S';
id[1] = 'P';
}
sprintf(id + 2, "%d", ++ln);
ss.insert(make_pair(id, line));
}



for (auto it = ss.begin() ; it != ss.end() ; ++it)
cout << it->first << "\t " << it->second << endl;

return 0;
}


/* 6?11 6、进行了消息管理器优化
* SP316
* 1?2 1、新增聊天记录漫游,随时随地查阅更便捷;
* SP93
* SP252
* ==75 ===============================================
* 8?00 8、同时优化了一些操作的细节体验
* 7?35 7、快捷短语显示长度不受限制,快速、高效
* SP275
* ==24 ===============================================
* 16244 16、联系人信息更新提醒支持不同图标,包括动态图标,最新信息尽在掌握
* 2?22 2、增加陌生人消息模式功能
*/


id 和 文本可以分别保存文件,反写下程序,可以把文档恢复回来
hongwenjun 2012-09-12
  • 打赏
  • 举报
回复
如果文件不是很大

#include <iostream>
#include <string>
#include <map>
#include <unordered_map>

int main()
{
using namespace std;
unordered_map<string, string> ss ;

ss.insert(make_pair("a1", "aaaaaaa"));
ss.insert(make_pair("b2", "bbbbbbb"));
ss.insert(make_pair("c3", "ccccccc"));
ss.insert(make_pair("d4", "d324324"));
ss.insert(make_pair("d5", "d656546"));
ss.insert(make_pair("d6", "dfdgfdg"));
ss.insert(make_pair("d7", "d5656"));
ss.insert(make_pair("d8", "d6765765"));
ss.insert(make_pair("d9", "d090989098"));

for (auto it = ss.begin() ; it != ss.end() ; ++it)
cout << it->first << it->second << endl;

return 0;
}


/* 输出结果
d9d090989098
c3ccccccc
b2bbbbbbb
a1aaaaaaa
d7d5656
d5d656546
d4d324324
d8d6765765
d6dfdgfdg
*/

65,199

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧