0
,當我使用此代碼讀取文件並打印出來安慰:未處理的異常讀取較大的文件
//includes
int main(){
std::ifstream myReadFile;
myReadFile.open("C:\\Users\\Me\\Desktop\\Win32w\\gdip.ahk");
char output[100];
if (myReadFile.is_open()) {
while (!myReadFile.eof()) {
myReadFile >> output;
std::cout << output;
}
}
myReadFile.close();
}
,但打印出來的文件,我得到以下錯誤的所有內容後:
Unhandled exception at 0x51F0742A (msvcp120d.dll) in fourteen.exe: 0xC0000005: Access violation reading location 0x002C10AB.
當我用5行運行一個較小的文件(script.ahk)時,它運行OK。文件gdip.ahk有大約3300行。
你相信'''能夠看看它接收到的char *,並且知道它指向一個長度爲100個字符的內存塊,以免超過它?如果一條線超過它,你認爲它會做什麼?什麼啓發你使用char數組而不是'std :: string'? – HostileFork 2014-10-01 13:39:57
誰讓你使用'eof'?你不應該使用'eof'。如果有人告訴你使用'eof',不要聽。你應該使用'while(myReadFile >>輸出)'。 – molbdnilo 2014-10-01 14:04:52
我對C++相當陌生,我只是從頁面獲得這段代碼。感謝您的提示。 – alvitawa 2014-10-02 09:30:33