gpt4 book ai didi

c++ - 错误 C2143 : syntax error : missing ';' before 'namespace'

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:52 24 4
gpt4 key购买 nike

我是 C++ 和 Open GL 的新手,我一直在尝试在场景中显示 3D 对象。它与一个工作正常,但是当我尝试更改我的代码以添加第二个时,我关于显示相机位置的 HUD 文本的代码开始出错。显示了上面的错误,它显然在 sstream 文件 (#include) 中。我试过四处寻找并寻求帮助,但没有任何帮助/我理解。当我注释掉 #include 行和使用它的代码时,我得到类似的说法“error C2143: syntax error : missing ';'在我的 main.cpp 文件中“使用”之前。

我正在运行 Visual Studio 2010,我什至尝试关闭并重新打开整个系统,并将代码复制到一个新项目中。将不胜感激。

#include <Windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "glut.h"
#include "SceneObject.h"
#include <fstream>
#include <sstream>
#include <iostream>
#include <string>
//#include <cmath>
//#include <limits>
//#include <cstdlib>

using namespace std;

...

stringstream ss;
ss << "Camera (" << cam.pos.x << ", " << cam.pos.y << ", " << cam.pos.z << ")";
glClear(GL_DEPTH_BUFFER_BIT);
outputText(-1.0, 0.5, ss.str());

...

#ifndef SCENEOBJECT_H
#define SCENEOBJECT_H
#include <string>
#include <iostream>
#include <fstream>

using namespace std;

struct point3D {
float x;
float y;
float z;
};

struct colour{
float r;
float g;
float b;
};

struct tri {
int a;
int b;
int c;
};

class SceneObject {
private:
int NUM_VERTS;
int NUM_COL;
int NUM_TRI;
point3D * vertices;
colour * colours;
tri * indices;
void drawTriangle(int a, int b, int c);
public:
SceneObject(const string fName) {
read_file(fName);
}
void drawShape()
{
// DO SOMETHING HERE
}
int read_file (const string fileName)
{
ifstream inFile;
inFile.open(fileName);

if (!inFile.good())
{
cerr << "Can't open file" << endl;
NUM_TRI = 0;
return 1;
}

//inFile >> shapeID;

inFile >> NUM_VERTS;
vertices = new point3D[NUM_VERTS];

for (int i=0; i < NUM_VERTS; i++)
{
inFile >> vertices[i].x;
inFile >> vertices[i].y;
inFile >> vertices[i].z;
}

inFile >> NUM_COL;
//inFile >> randomCol;
colours = new colour[NUM_COL];
/*if (randomCol == 'y')
{
for (int i=0; i < NUM_COL; i++)
{
colours[i].r = ((float) rand() / (RAND_MAX+1));
colours[i].g = ((float) rand() / (RAND_MAX+1));
colours[i].b = ((float) rand() / (RAND_MAX+1));
}
}
else if (randomCol == 'n')
{*/
for (int i=0; i < NUM_COL; i++)
{
inFile >> colours[i].r;
inFile >> colours[i].g;
inFile >> colours[i].b;
}
//}

inFile >> NUM_TRI;
indices = new tri[NUM_TRI];

for (int i=0; i < NUM_TRI; i++)
{
inFile >> indices[i].a;
inFile >> indices[i].b;
inFile >> indices[i].c;
}

inFile.close();
return 0;
}
}
#endif

我没有更改代码,据我所知,应该有分号的地方有分号。甚至我已经编程 5 年的 friend 也无法解决这个问题。如果需要,我将包括任何其他特定代码。当我说 C++ 和 OpenGL 的新手时,我真的非常新。这甚至是我的第一篇文章。我最终会到达那里。

最佳答案

你必须放一个';'每节课后

意思是

class foo{
public:
void bar();
};

我想你错过了最后一个分号。

关于c++ - 错误 C2143 : syntax error : missing ';' before 'namespace' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com