3

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

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

这是我的代码

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 只是通向我正在读取的文件的路径。

4

1 回答 1

1

您应该使用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);

    <...>
}
于 2012-11-16T12:22:26.707 回答