FStream类并使用字符串作为参数

时间:2012-03-13 21:55:25

标签: c++ string text parameters fstream

Deneme::Deneme(string FileName){

 fstream textfile;
 textfile.open(FileName);
 }

这给了我一个错误,但当我输入textfile.open(“randomname”);而不是textfile.open(FileName);似乎没有问题。为什么是这样?这可能是一个简单的问题,但我是初学者,无法找到解决方案。

3 个答案:

答案 0 :(得分:1)

fstreams只接受const char*。请改用textfile.open(FileName.c_str());fstream textfile(FileName.c_str());(尽管C ++ 11接受const std::string&)。 这是一个handy site来查找构造函数和函数的声明方式。

答案 1 :(得分:0)

当你按值传入std :: string时,fstream的open方法接受一个const char指针,我想这可能是错误。尝试:

textfile.open(FileName.c_str());

答案 2 :(得分:0)

使用符合标准C ++的系统:C ++ 2011提供了open()的构造函数和std::string const&函数。对于C ++ 2011之前的系统,您需要使用name.c_str()传递给文件流。