Deneme::Deneme(string FileName){
fstream textfile;
textfile.open(FileName);
}
这给了我一个错误,但当我输入textfile.open(“randomname”);而不是textfile.open(FileName);似乎没有问题。为什么是这样?这可能是一个简单的问题,但我是初学者,无法找到解决方案。
答案 0 :(得分:1)
fstreams只接受const char*
。请改用textfile.open(FileName.c_str());
或fstream textfile(FileName.c_str());
(尽管C ++ 11接受const std::string&
)。
这是一个handy site来查找构造函数和函数的声明方式。
答案 1 :(得分:0)
textfile.open(FileName.c_str());
答案 2 :(得分:0)
使用符合标准C ++的系统:C ++ 2011提供了open()
的构造函数和std::string const&
函数。对于C ++ 2011之前的系统,您需要使用name.c_str()
传递给文件流。