在VC6.0上編寫某個讀取文件的控制檯程序時,出現這樣一個錯誤。
而我的代碼非常簡單,我感覺完全不存在錯誤。
bool ReadFile(string path)
{
ifstream istream; //讀文件流
istream.open(path);
}
在網上找了很多解決方法,最後得出的方法是:在路徑字符串後面加上.c_str()。
因爲open()成員函數的參數是一個char *類型的量,要通過調用 string類的c_str()函數返回一個C風格的字符串(也就是一個字符數組的首地址,即char *值)纔可以調用open()函數。
我照着上面的方法改了,問題解決了。但我有一點疑問的是,有時候使用ifstream的open函數不存在這個問題,但有時候怎麼有出現這個問題。我個人估計與VC6.0編譯器有問題,感覺是這個編譯器在字符串的支持上沒有做好。