file.open()内的参数只能是使用C的字符串,不能是string
- string filename = "1.txt";
- ifstream fin;
- fin.open(filename);
上述语句会产生如下错误:
error: no matching function for call to 'std::basic_ifstream<char>::open(std::string&)
原因是C++的string类无法作为open的参数。
解决方案:使用C的字符串。
方法一:string.c_str()
方法二:
- char filename[10];
- strcpy(filename, "1.txt");
- ifstream fin;
- fin.open(filename);