ifstream的open函数问题
在VC6.0上编写某个读取文件的控制台程序时,出现这样一个错误。
cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::
而我的代码非常简单,我感觉完全不存在错误。
bool ReadFile(string path) { ifstream istream; //读文件流 istream.open(path); }
在网上找了很多解决方法,最后得出的方法是:在路径字符串后面加上.c_str()。
因为open()成员函数的参数是一个char *类型的量,要通过调用 string类的c_str()函数返回一个C风格的字符串(也就是一个字符数组的首地址,即char *值)才可以调用open()函数。
我照着上面的方法改了,问题解决了。但我有一点疑问的是,有时候使用ifstream的open函数不存在这个问题,但有时候怎么有出现这个问题。我个人估计与VC6.0编译器有问题,感觉是这个编译器在字符串的支持上没有做好。