getline中的“无效转换”错误

时间:2012-11-16 11:52:55

标签: c++ getline

在这个程序中,我正在尝试从文件中读取第三行文本,然后仅在最后一个空格之后读取它的结尾。当我使用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只是指向我正在阅读的文件的路径。

1 个答案:

答案 0 :(得分: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);

    <...>
}