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.
Когда я запускаю меньший файл (script.ahk) с 5 строками, он работает нормально. Файл gdip.ahk имеет бой 3300 строк.
Является ли это вашей убежденностью в том, что '>>' способен смотреть на полученный символ char * и знать, что он указывает на блок памяти длиной 100 символов, чтобы не превышать его? Как вы думаете, что было бы, если бы линия превысила его? И что вдохновило вас на использование массива char вместо 'std :: string'? – HostileFork
И кто сказал вам использовать 'eof'? Вы не должны использовать 'eof'. Если кто-то говорит вам использовать 'eof', не слушайте. Вы должны использовать 'while (myReadFile >> output)'. – molbdnilo
Я довольно новичок в C++, я просто получил этот код со страницы. Спасибо за советы. – alvitawa