我使用以下代码读取文件并将其打印输出到控制台:

//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)时,它运行正常。文件gdip.ahk有3300行。

最佳答案

读取尝试读取文件末尾之后,将设置EOF标志。见这里How does ifstream's eof() work?

07-27 19:43