file.open()内的参数只能是使用C的字符串,不能是string

  1. string filename = "1.txt";  
  2. ifstream fin;  
  3. fin.open(filename);

上述语句会产生如下错误:

error: no matching function for call to 'std::basic_ifstream<char>::open(std::string&)

原因是C++的string类无法作为open的参数。

解决方案:使用C的字符串。

方法一:string.c_str()

方法二:

    1. char filename[10];  
    2. strcpy(filename, "1.txt");  
    3. ifstream fin;  
    4. fin.open(filename);
posted on 2013-03-15 19:35  hrbust_09zhangyabin  阅读(348)  评论(0编辑  收藏  举报