在C ++中使用std :: getline()的签名错误

时间:2013-05-06 14:20:38

标签: c++ stl

这是我的代码:

    std::string currentItem;
    char delimeter = '=';

    std::vector<std::string> afterSplit;
    for (int i =0; i<linesOfConfigFile.size(); i++)
    {
        const std::stringstream singleLine(linesOfConfigFile[i]);

        while(std::getline(singleLine, currentItem, delimeter))
            afterSplit.push_back(currentItem);
    }

我在第三行的getline函数调用中遇到错误。 编译说:

no matching function for call to getline(const std::stringstream&, std::string&, char&)'

但是,我找不到问题所在。参数是否正确?!

1 个答案:

答案 0 :(得分:5)

std::stringstream singleLine(linesOfConfigFile[i]);

const std::stringstream singleLine(linesOfConfigFile[i]);

声明一个流const没有多大意义,因为每次读取或写入都会修改流状态。