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 回答