2012-11-16 56 views
3

在這一個程序中我試圖從文件中讀取第三行文本,然後在最後一個空格後僅取其結尾。當我使用getline函數但是它給了我一個「無效的轉換」錯誤getline

idp_handler.cc:37: error: invalid conversion from ‘void*’ to ‘char’ (line 37 is the line of the first 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就是導致我從閱讀的文件的路徑。

+0

所以給我們一個線索,這行是第37? – john

+0

什麼是PATH_R?哪一行是37? – Angew

+6

另外,你正在閱讀,你應該使用'ifstream',而不是'ofstream'。 – Angew

回答

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); 

    <...> 
}