C++ 文件拼接问题

panda_2000 2014-05-08 11:13:32
多个文本文件存储在vector<string> vFiles里,读取这N个文件,按照文件内容里的时间分别写入以时间命名的文件中(以原文件内容时间命名,文件不存在则创建,文件存在则在已有文件尾部追加新内容),不对原文件做任何修改,只是将不同段的内容分别写入对应文件。
文本文件格式:
S9905 20140506174900 262952 1014806 00000 119
TH 0162 0166 1704 0161 1743 //// 058 057 1704 ///
RE 0000
WI 239 022 237 022 227 029 1702 211 018 236 062 1702 /// ///
Q3 9999999999 9 99999999999999 999999 999 999999=
S9904 20140506201500 264928 1020121 00000 119
TH 0179 0180 1744 0173 1701 //// 071 068 1742 ///
RE 0000
WI 086 006 086 006 084 009 1737 078 005 056 012 1737 /// ///
Q3 9999999999 9 99999999999999 999999 999 999999=
31905 20140505211900 304438 1042249 00000 119
TH 0131 0134 2101 0131 2118 //// 055 055 2117 ///
RE 0000
WI 088 007 098 006 098 006 2119 074 009 100 009 2119 /// ///
Q3 9999999999 9 99999999999999 999999 999 999999=
----------------------------------分割线----------------------------------------------
31905 20140506174900 262952 1014806 00000 119
TH 0162 0166 1704 0161 1743 //// 058 057 1704 ///
RE 0000
WI 239 022 237 022 227 029 1702 211 018 236 062 1702 /// ///
Q3 9999999999 9 99999999999999 999999 999 999999=
为文件中的一个记录,以字母+数字或者纯数字开头,以等号“=”结尾,每个文件的记录不一定相同,个数不固定,在不对文件中的记录做修改的情况下,按照文件记录中的时间(如20140506174900)将各条记录写入对应的文件中。
for ( int i = 0; i < vFiles.size(); i++ )
{
ifstream fs1;
fs1.open( vFiles[i].c_str(), ios::in );
。。。。。。。。。。。。。。。。。
}
请教各位大神,代码如何写,希望有代码参考,万分感谢!
...全文
295 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
panda_2000 2014-05-14
  • 打赏
  • 举报
回复
问题已解决,为了拿到系统返的分,结个贴分个分
panda_2000 2014-05-09
  • 打赏
  • 举报
回复
补充一点:每条记录的长度也不一定相同。
zybjtu 2014-05-09
  • 打赏
  • 举报
回复


ofstream out("filename", ios::app)

for(auto iter = vFiles.begin(); iter != vFiles.end(); iter ++) {
    ifstream in((*iter).c_str(), ios::in);
    string line;    
    while(getline(ifstream, line))
          ofstream <<line << endl;
    in.close()
}
out.close()
大概就这个框架吧,你看看。我没测试
lm_whales 2014-05-09
  • 打赏
  • 举报
回复
这里,仅仅需要判断文件是否存在 不论是C 库,还是Windows win32 API 都提供了一些函数用于处理这个问题 C #<io.h> access 函数可以用来判断 win32 FindFirstFile 可以用来判断文件存不存在 对已经存在的,追加方式打开,写文件就是了 不存在,写方式打开,写文件就是了。 这就是个打开文件的方法问题。
赵4老师 2014-05-09
  • 打赏
  • 举报
回复
作为一个C程序员,对 scanf,sscanf,fscanf printf,sprintf,fprintf 这类函数的用法,还是要做到“拳不离手,曲不离口”的。
mujiok2003 2014-05-09
  • 打赏
  • 举报
回复
找个小工来干?
panda_2000 2014-05-09
  • 打赏
  • 举报
回复
有大神能帮个忙么。。。。。。
「已注销」 2014-05-08
  • 打赏
  • 举报
回复
1.从文件中得到行数据,放到string对象中,文件io流实现 2. 对行数据string进行解析,分离出时间,从而确定它是对应哪一个时间命名的文件 3.定位TH,它的前一行与后三行写入时间命名的文件中

65,209

社区成员

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

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