我正在使用以下方法读取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中“修复”的,因此,如果您使用它,则原始代码将起作用。
另外,不建议使用全大写字母的变量名;这两个变量都不是“字符串”。使名称描述含义。