dev在试图从dev c++mingw 4.8.1中的文件读取时接收分段错误

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

本文关键字:dev 读取 文件 错误 分段 c++mingw      更新时间:2023-10-16

我试图从文件中读取字符,但当我在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,文件是打开的。但并没有从文件中读取任何字符。调试信息

为什么会发生这种情况?

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

我的编译器中没有一个能够重现同样的问题。这是一种非常奇怪的行为,因为至少'read'的声明应该与原始声明相同,才能进行适当的覆盖。也许您的stdlib正在以不同的方式调用read。