C ++从文件读取到向量中

时间:2015-02-12 23:21:24

标签: c++ oop vector

我正在开发一个应该从文件中读取并将该文件的内容存储在向量中的程序。我必须读取.txt文件的内容并在字符串到达​​''之前将字符串推回到向量中。如果是空格,您将跳过文件的该部分并继续在空格后推回内容。有人知道用什么函数从文件中读取并将内容放入向量或数组中吗?谢谢你的时间。

int main()
{
    Code mess;
    ifstream inFile;
    inFile.open("message1.txt");
    if (inFile.fail()) {
        cerr << "Could not find file" << endl;
    }
    vector<string> code;
    string S;
    while (inFile.good()) {
        code.push_back(S);
    }
    cout << mess.decode(code) << endl;
return 0; 
}

2 个答案:

答案 0 :(得分:1)

基本上你也可以这样做:

std::ifstream fh("text.txt");
    std::vector<std::string> vs;
    std::string s;
    while(fh>>s){
             vs.push_back(s);
    }

    for(int i=0; i<vs.size(); i++){

            std::cout<<vs[i]<<std::endl;
    }

答案 1 :(得分:0)

您应该将阅读代码更改为

while (inFile >> S) {
    code.push_back(S);
}

您当前的代码未读取S变量中的任何内容。


关于循环条件 while (inFile.good()) 请参阅此Q&amp; A,请: 的 Why is iostream::eof inside a loop condition considered wrong?

使用std::iostream::good()或多或少存在同样的问题。