python的文件直接可以用readlines()方法将文本按行读入列表,但是对于c++我目前没有找到很好的办法将文件按行读入容器vector,先存一个将就用把,后面有新方法再跟进!
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
vector<string>v; //创建向量v;
fstream inf("nnnn1.txt");//创建fstream对象inf;
for(string txt;inf>>txt;)//用重载了的运算符>>将对象循环写入string类的对象txt;遇到空格或者换行符则跳到下一个循环
{
v.push_back(txt);
}
for(int i=0;i<v.size();i++)
cout<<v[i]<<endl<<endl;
}
结果如图:
这种方法要求不能使用空格,下面的方法更好:
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
fstream inf("nnnn1.txt");
vector<string>v;
while(!inf.eof())
{
string strbuf;
getline(inf,strbuf);
v.push_back(strbuf);
}
cout<<v.size()<<endl;
for(int i=0;i<v.size();i++)
{
cout<<v[i]<<endl;
}
}
结果如图: