1

テキスト入力を取得して、次のように文字列変数に格納できるようにしたい:

#include <fstream>

int main()
{
    string fileInput = "filetoinput.txt";
    ifstream inputFile (fileInput);
}

ただし、次のような ifstream 型変数の作成のみを受け入れます。

#include <fstream>

int main()
{
    ifstream inputFile ("filetoinput.txt");
}

文字列変数を引用符で囲まれたテキストのように動作させる方法はありますか?

4

4 に答える 4

4

C++11 では、元の例が機能するはずです。

#include <fstream>
#include <string>

std::string fileInput = "filetoinput.txt";
std::ifstream inputFile(fileInput);

C++11 に慣れていない場合はfileInput.c_str()、呼び出しに使用できる C スタイルの文字列が得られます。

std::ifstream inputFile(fileInput.c_str());
于 2013-11-07T12:49:48.750 に答える
2
#include <fstream>

int main()
{
    ifstream inputFile (fileInput.c_str());
}

c_str() はあなたが望むものです。

于 2013-11-07T12:44:59.177 に答える
1

はい、使用.c_str()方法:

ifstream inputFile (fileInput.c_str());
于 2013-11-07T12:41:25.550 に答える
0

ifstream は明示的なコンストラクターを使用しています

explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in)

したがって、文字列のconst char* c_str() const関数を使用してパラメーターを渡す必要があります。

于 2013-11-07T13:27:17.670 に答える