可能重复:
Design of std::ifstream class
Why does (i|o)fstream take a const char* parameter for a file name?
看看std :: ifstream的构造函数,我找到了两个:
ifstream ( );
explicit ifstream ( const char * filename, ios_base::openmode mode = ios_base::in );
为什么第二个采用const char *
而非const std::string &
?
这是否避免了循环或前向参考?
答案 0 :(得分:6)
这是一个简单的遗漏。没有人及时想到它。这已在C ++ 11中得到纠正,其中std::string
也被接受。从27.9.1.7/3开始:
explicit basic_ifstream(const string& s, ios_base::openmode mode = ios_base::in);
效果:与
basic_ifstream(s.c_str(), mode)
相同。
答案 1 :(得分:-1)
您的编译器已过期。升级它,你应该找到一个std::string
构造函数。