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

Signature error using std::getline() in C++

本文关键字:错误 getline std c++      更新时间:2023-10-16

这是我的代码:

    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&)'

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

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

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

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