获取线中的"Invalid conversion"错误

"Invalid conversion" error in getline

本文关键字:Invalid 错误 conversion 获取      更新时间:2023-10-16

在这个程序中,我试图从文件中读取第三行文本,然后在最后一个空格之后只取其结尾。但是,当我使用 getline 函数时,它给了我一个

idp_handler.cc:37:错误:从"void*"到"char"的转换无效(第 37 行是第一行的行)

这是我的代码

void idp_handler::resume() {
    ofstream myfile;
    myfile.open (PATH_R);
    string read;
    getline (myfile, read);
    getline (myfile, read);
    getline (myfile, read);
    for(int i = read.size()-1; read[i]==' '; i--) read = read.substr(i,read.size()-i);
    cout << "karp" << read << "karp" << endl;
}

PATH_R只是一条通往我正在读取的文件的路径。

您应该使用 std::ifstream ,并且始终以 std:: 开头,而不是将命名空间导入全局命名空间std以避免冲突:

void idp_handler::resume() {
    std::ifstream myfile;
    myfile.open (PATH_R);
    std::string read;
    std::getline (myfile, read);
    std::getline (myfile, read);
    std::getline (myfile, read);
    <...>
}