【发布时间】:2015-12-29 13:52:11
【问题描述】:
如果我在使用 OpenGL/freeglut 时尝试使用 ifstream,程序会崩溃。我的代码:
#include <fstream>
#include <windows.h>
#include <GL/freeglut.h>
double x, y;
std::ifstream read("coordinates.txt");
void display() {
glBegin(GL_LINE_STRIP);
while (read >> x) //Crashes here
{
read >> y;
glVertex2d(x, y);
}
glEnd();
glFlush();
}
void key(unsigned char mychar, int x, int y) {
if (mychar == 27) {
exit(0);
}
}
void initialize()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-27, 27, -27, 27);
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowSize(1920, 1080);
glutInitWindowPosition(0, 0);
glutCreateWindow("Lorenz Attractor");
initialize();
glutDisplayFunc(display);
glutKeyboardFunc(key);
glColor3d(0, 0, 1);
glutFullScreen();
glutMainLoopEvent();
Sleep(60000);
}
坐标.txt:
1.1 1.03
2.5 2
3 5.3
我什至不需要包含 freeglut,我检查了一个以前运行良好的旧项目,现在它也崩溃了。将 Code::Blocks 与 MinGW 一起使用。为什么会发生这种情况?谢谢!
【问题讨论】:
-
你有没有通过检查
read.good()检查文件是否打开正确? -
@BDL 输出1,还是不行,崩溃了。
标签: c++ opengl crash ifstream freeglut