尝试从 dev c++ mingw 4.8.1 中的文件读取时收到分段错误

Receiving segmentation fault when trying to read from file in dev c++ mingw 4.8.1

我正在尝试从文件中读取字符,但是当我在 main 外部声明了变量时,我收到了一个分段错误。如果我删除它们并尝试从文件中读取,一切都会顺利进行。 我正在使用 dev c++ 5.7.1 和 mingw 4.8.1 便携版。

我已将问题隔离为仅声明了几个变量和文件读取代码。这段代码来自我正在尝试开发的一个更大的应用程序(我正在自学游戏开发)。

#include <iostream>    
#include <fstream>    
bool running = true;  
bool musicPlaying = true;  
bool read = false;  
int levelNumber;  
int barWidth = 40;  
int barHeight = 10;  
float timeElapsed;  

int main(int argc, char** argv) {    
    std::ifstream file;
    file.open("test.txt");
    std::cout<<file.is_open()<<std::endl;
    char c;
    while(!file.eof()){  
        file.get(c);  
        std::cout<<c;  
    }  
    return 0;  
}

我得到输出:1,文件已打开。但是没有从文件中读取任何字符。 Debug information

为什么会这样?

根据您对我评论的回答,声明 bool read 覆盖了 fread 使用的 read 函数。 重命名它或将其移动到另一个命名空间或 class.

None 我的编译器可以重现同样的问题。这是非常奇怪的行为,因为至少 'read' 的声明应该与正确覆盖的原始声明相同。也许您的 stdlib 正在以不同的方式调用 read。