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編譯器有問題,感覺是這個編譯器在字符串的支持上沒有做好。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章