读取较大文件时出现未处理的异常

时间:2014-10-01 13:22:20

标签: c++ visual-c++

我使用此代码读取文件并将其打印到控制台:

//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行。

1 个答案:

答案 0 :(得分:1)

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