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;
}

结果如图:

c++学习笔记,将文件字符串按行读入容器vector


这种方法要求不能使用空格,下面的方法更好:

#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;
    }
}
结果如图:
c++学习笔记,将文件字符串按行读入容器vector


相关文章: