我正在使用以下方法读取txt文件

modelStream.open("file.txt", ios::in);
if (modelStream.fail())
    exit(1);
model = new Model(modelStream);

但我想知道如何将字符串作为参数传递
string STRING;
modelStream.open(STRING, ios::in);
if (modelStream.fail())
    exit(1);
model = new Model(modelStream);

有谁知道这是否可能,如果我会怎么做?

最佳答案

由于遗留原因,C++ 03中的iostreams期望使用C样式,以null终止的字符串作为参数,并且不理解std::string。幸运的是,std::string可以使用std::string::c_str()函数生成C样式,以null终止的字符串:

modelStream.open(STRING.c_str(), ios::in);

这实际上是在C++ 11中“修复”的,因此,如果您使用它,则原始代码将起作用。

另外,不建议使用全大写字母的变量名;这两个变量都不是“字符串”。使名称描述含义。

07-26 09:32