c++ 读取txt中的数值

遥感服务 2016-09-09 05:33:04
txt格式如下:
8 9
1
5 2 1

如何逐行读取数值,并且把每一行中的数值放入vector中,上面的txt内容读取结果,应该是三个vector,第一个vector包含两个数值8和9,第二个vector包含一个数值1,第三个vector包含3个数值5,2,1. 请教大家如何快速实现。
...全文
221 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2016-09-10
  • 打赏
  • 举报
回复
引用 3 楼 rsisgongd的回复:
[quote=引用 1 楼 paschen 的回复:] 外层循环按行读 内层循环按空格切分,并放入到vector中
切分怎么写,能帮忙说写一个列子吗?[/quote] http://www.cnblogs.com/linxr/archive/2011/12/28/2304350.html
red-fly 2016-09-10
  • 打赏
  • 举报
回复
三层循环: 第一层循环读取文件到buffer中,第二层循环按行分割,第三层循环分割数字 char buf[256]; int len=0; int temp; memset( buf, 0, sizeof(buf)); while(1) { temp = fread (buf+len,255-len); if ( temp <= 0 ) break; // 读取不到内容了就退出 len += temp; int offset = 0; while(1) { char *line = getline(buf, offset); // 分割出一行,offset为偏移量计数器 if ( line == NULL ) break; int mmg = 0; vector<int> vecd; while(1) { char *dig = getdig(line, mmg); // 获取一个数字,mmg为偏移量计数器 if ( dig==NULL ) break; temp = atoi(dig); vecd.pusb_back(temp); } } if ( offset > 0 ) { len -= offset; memcpy( buf, buf + offset, len ); memset( buf + len, 0, 256 - len ); } } 以上伪代码,可以对它进行补充修改
遥感服务 2016-09-10
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
外层循环按行读 内层循环按空格切分,并放入到vector中
切分怎么写,能帮忙说写一个列子吗?
阿卡阿卡 2016-09-10
  • 打赏
  • 举报
回复
楼上说的对,读一行,再切割
paschen 版主 2016-09-09
  • 打赏
  • 举报
回复
外层循环按行读 内层循环按空格切分,并放入到vector中

64,654

社区成员

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

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