C++ 文件读取行/单词

这里使用fstream来读取文件,并按照每行一个string方式写入vector

void read(ifstream &ifs, vector<string> &vec)
{
    ifs.open("C:\\Users\\****\\Desktop\\1.txt");//文件地址,注意转义符
    string str;
    while(getline(ifs, str))//按行读取
    {
        vec.push_back(str);
    }
    if(ifs.is_open())
        ifs.close();//关闭流
}

int main()
{
    ifstream ifs;
    vector<string> vec;
    read(ifs, vec); 
    for(auto str : vec)
        cout << str.c_str() << endl;

    return 0;
}

按照每个单词分割写入vector

//read the file and write it by word into vector
void read(ifstream &ifs, vector<string> &vec)
{
    ifs.open("C:\\Users\\****\\Desktop\\1.txt");
    string str;
    char c;
    while(ifs.get(c))
    {
        if(c != ' ' && c != ',' && c != '.')
            str += c;
        else
        {
            if(str != "")
                vec.push_back(str);
            str = "";
        }   
    }
    if(ifs.is_open())
        ifs.close();
}

中文乱码处理

多半是文件编码格式不对,改为UTF-8(编辑器都可以改格式的),如果是*.txt的话直接另存为->编码->UTF-8,即可。

posted @ 2019-07-01 09:35  yocichen  阅读(2223)  评论(0编辑  收藏  举报