3

この 1 つのプログラムでは、ファイルからテキストの 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 に答える