Code Bye

c++ 读取txt中的数值

txt格式如下:
8  9
1
5  2 1
怎么样逐行读取数值,并且把每一行中的数值放入vector中,上面的txt内容读取结果,应该是三个vector,第一个vector包含两个数值8和9,第二个vector包含一个数值1,第三个vector包含3个数值5,2,1. 讨教大家怎么样快速实现。
解决方案

10

外层循环按行读
内层循环按空格切分,并放入到vector中

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 );
}
}
以上伪代码,可以对它进行补充修改

10

引用:
Quote: 引用:

外层循环按行读
内层循环按空格切分,并放入到vector中

切分怎么写,能帮忙说写一个列子吗?

http://www.cnblogs.com/linxr/archive/2011/12/28/2304350.html


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c++ 读取txt中的数值