我需要读取一个text的文件,文件的每一行存到一个stl list里。比如文件有10行 那么就有10个stl list 每个list里的元素就是这一样的所有字符
然后还有一个stl list用来存储文件的列,他是以这10个list作为子元素,把它们串联到一起
请问如何实现?
先写过各位大神了
我给你写了一个测试例子,读取txt你自己写很简单
我就不写了
#include<list>#include<string>
#include<iostream>
using namespace std;
void main()
{
list<list<string> > lt;
lt.push_back(list<string>(10,"12345"));
for(list<list<string> >::iterator it=lt.begin();it!=lt.end();it++)
for(list<string>::iterator ot=it->begin();ot!=it->end();ot++)
cout<<*ot<<endl;
}
追问
谢谢大神 不过我还有个问题
因为我还要用子list读取文件的每一行嘛,我用的是while(!fin.eof())读整个文件然后用while(getline())读每一行,再用push_back把string拆成char存到子list里。可这样的话结果就是把整个文件存到一个list里了。
请问大神如何做到每读取完一行就自动结束当前list,并把下一行存到一个新的list里?
直接用这个函数就可以了push_back,他会不断加入
还有你list单元存储的是char还是string
如果是char 直接用ifstream in; char s;
in>>s; 当换行再处理,如果是string 你可以用getline 或是设置一个大的缓冲区 也用上面的方法,这题目很简单,不难,自己多动动手
可能我没把话说明白,比如txt里是一首古诗,那我第一个list里存的就是床前明月光,第二个list就是疑是地上霜,最后那大的list就是把几行串联一起
我就是还搞不懂“12345”那部分,也就是每行的内容怎么输入
只用一个push_back它会把整个txt文件都存到一个list里吧?我觉得应该有段代码是用来告诉程序这行文本已经读完,要开始读下一行文本,并且要存在下一个list里面
刚接触c++的小白。
读入数组后串联起来?