0

重複の可能性:
ifstream::open() への C++ タイプの引数
。開始ファイル パスとして文字列を使用する C++ ifstream エラー。

どうしたの

ifstream sourceFile;
sourceFile.open(filepath);

私は何かを得ています:

一致する関数呼び出しがありませんifstream::open(string&)

どうしたの?

と同じ

ifstream sourceFile(filepath)

filepath は文字列です

4

3 に答える 3

2

C++11 の時点で、iostream は、開くファイルの名前を指定するパラメータとして a を取ることができstringますが、これは C++ 11 で追加されたため、かなりの数のライブラリにはまだ含まれていません。コンパイラ/ライブラリの最新バージョンに更新すると役立つ場合があります(ただし、そうでない場合もあります-サポートがまだ完全に普遍的であるとは思えません)。

于 2012-10-23T04:45:31.817 に答える
1

filepathのように見えstringます。 Open生のポインターのみを受け取ります。だからこれをしてください -Open(filepath.c_str());

于 2012-10-23T04:43:16.310 に答える
0

引数として文字列char* filenameではなく aを取ります。

sourceFile.open(filepath.c_str());

The Function is std::ifstream::open
    void open ( const char * filename, ios_base::openmode mode = ios_base::in );

参考

于 2012-10-23T04:42:14.157 に答える