我有一個C++應用程序需要從.txt文件讀取數據。我已經有這個應用程序工作了大約8-9個月,但在更改應用程序的另一部分後,在任何調用getline()時出現「訪問衝突」錯誤。std :: getline()訪問衝突,用於工作,但不能從任何文件讀取
這裏是我的代碼:
std::string line;
std::ifstream config;
config.open(fileName);
if(config.is_open()) {
while(config.good())
{
std::getline(config, line);
//Other code to do stuff with the string "line".
}
我不知道爲什麼這種情況正在發生,難道是與一些性病庫DLL某處或某事?
我完全喪失。
作爲一種快速解決方法,還有另一種簡單的方法來逐行讀取文件,以便可能會繞過此問題?
謝謝。
哦,這裏是錯誤消息:
0xC0000005: Access violation writing location 0x00000014.
OS(從MSVCRT.LIB(釋放)取代MSVCRTD.LIB(最後一個字符 'd' 爲調試LIB))?編譯器? (讓我猜,Windows?Visual C++?) – Linuxios
涉及哪些類型的其他代碼?由於地址0x14的訪問衝突意味着您可能會取消引用'char'。像這樣的低內存幾乎都是操作系統內存,並且幾乎總是處於足夠低的地步,只有取消引用字符才能做到這一點。你在'std :: string'中訪問C字符串嗎? – Linuxios
用'std :: stringstream'嘗試'std :: getline'來確認它的'std :: getline',而不是文件權限問題。 – andre