Oleg Pridarun 2 / 2 / 1 Регистрация: 16.06.2016 Сообщений: 91 |
||||
1 |
||||
02.07.2017, 13:05. Показов 7203. Ответов 12 Метки using namespace, visual studio, с, Синтаксис (Все метки)
У меня есть заголовочный файл LanguageEng.h В нём находится код:
При компиляции программы с этим заголовочным файлом происходит ошибка: c:users***onedriveпрограммыgamelanguageeng.h(4): error C2143: синтаксическая ошибка: отсутствие «;» перед «using namespace»
0 |
1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
|
02.07.2017, 13:53 |
2 |
Код программы в студию.
0 |
223 / 213 / 80 Регистрация: 26.04.2013 Сообщений: 972 |
|
02.07.2017, 14:08 |
3 |
Попробуйте добавить
0 |
2 / 2 / 1 Регистрация: 16.06.2016 Сообщений: 91 |
|
02.07.2017, 14:14 [ТС] |
4 |
Код программы в студию. Давайте я лучше весь проект кину, так как он многофайловый Добавлено через 5 минут
Попробуйте добавить Проблема осталась та же. Ни каких изменений
0 |
3434 / 2813 / 1249 Регистрация: 29.01.2016 Сообщений: 9,426 |
|
02.07.2017, 16:40 |
5 |
Давайте я лучше весь проект кину И где же он?
0 |
2 / 2 / 1 Регистрация: 16.06.2016 Сообщений: 91 |
|
02.07.2017, 17:21 [ТС] |
6 |
И где же он? Хотел поместить его на гугл диск, но это, похоже заняло бы несколько часов (не знаю по какой причине). Скинуть код из файла с int main()?
0 |
3434 / 2813 / 1249 Регистрация: 29.01.2016 Сообщений: 9,426 |
|
02.07.2017, 17:24 |
7 |
Хотел поместить его на гугл диск, но это, похоже заняло бы несколько часов (не знаю по какой причине). Здесь, в архиве, выложи. Или очень большой? Добавлено через 59 секунд
Скинуть код из файла с int main()? Хедеры, с определениями классов, есть в проекте?
0 |
2 / 2 / 1 Регистрация: 16.06.2016 Сообщений: 91 |
|
02.07.2017, 20:42 [ТС] |
8 |
Здесь, в архиве, выложи. Или очень большой? Добавлено через 59 секунд Хедеры, с определениями классов, есть в проекте? Классы не использовал. Я в них пока не разобрался. На данный момент только функции и переменные в хедерах
0 |
3434 / 2813 / 1249 Регистрация: 29.01.2016 Сообщений: 9,426 |
|
02.07.2017, 20:56 |
9 |
Выкладывать проект будешь, или можно отписываться от темы?
0 |
5230 / 3202 / 362 Регистрация: 12.12.2009 Сообщений: 8,112 Записей в блоге: 2 |
|
03.07.2017, 15:11 |
10 |
нужно смотреть на файл, который инклюдит LanguageEng.h
0 |
с++ 1282 / 523 / 225 Регистрация: 15.07.2015 Сообщений: 2,562 |
|
03.07.2017, 15:18 |
11 |
так в этом файле и исправляй ошибку по пути так как LanguageEng.h и такой languageeng.h это разные файлы или нет?
0 |
2 / 2 / 1 Регистрация: 16.06.2016 Сообщений: 91 |
|
05.07.2017, 22:50 [ТС] |
12 |
Простите, мне отключили интернет. Проблему решил. languageeng и LanguageEng для Visual у меня одно и тоже. Проблема была в другом хедере. В нём была пропущена ;, и другие хедеры на это реагировали
0 |
Заблокирован |
|
05.07.2017, 23:01 |
13 |
Решение
Проблема была в другом хедере. Это было сразу очевидно.
1 |
I am VERY new to C++ and Open GL and I have been trying to display 3D objects in a scene. it worked fine with one but when I tried to alter my code to add a second, my code regarding the HUD text showing the camera location started giving errors. The error above is shown and it is apparently in the sstream file (#include). I have tried searching around and asking for help but there is nothing that helps/that I understand. When I comment-out the #include line and the code that uses it, I get a similar saying «error C2143: syntax error : missing ‘;’ before ‘using'» in my main.cpp file.
I am running Visual Studio 2010 and I have even tried turning the whole thing off and on again, and copying the code over to a new project. Help would be greatly appreciated.
#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
I haven’t changed the code and as far as I am aware, there are semi-colons where there are meant to be. Even my friend who has been programming for 5 years couldn’t solve this. I will include any other specific code if needed. And when I said new to C++ and OpenGL I really much VERY new.
This is even my first post. I’ll get there eventually.
|
|
|
Компилятор не в себе
, глючит.. выдаёт ошибку там, где её быть не должно
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
после попытки компиляции программы в MVisual C++ 2008 Express пишет следующие тупые ошибки: Ошибка 1 error C2143: синтаксическая ошибка: отсутствие «;» перед «using» Ошибка 2 error C2628: недопустимый ‘Temperature’ с последующим ‘void’ (возможно, отсутствует ‘;’) //gradus.h #pragma once #include <iostream> #include <string> using namespace std; class Temperature { private: int grad; char sys; public: Temperature(int gr = 0 , char shkala = ‘C’) : grad(gr) , sys(shkala) {}; void set( int gr , char shkala) {grad = gr; sys = shkala;}; void set( string str); int change(); void show(); } //gradus.cpp #include «gradus.h» void Temperature::set(string str) {…} int Temperature::change() {…} void Temperature::show() {…} |
kanes |
|
При определении класса после } ставят ; |
Potroshitell |
|
аа.. сори, не компилятор глючит, а я! вопрос в топку Сообщение отредактировано: Potroshitell — 15.01.10, 13:46 |
kanes |
|
Цитата Potroshitell @ 15.01.10, 13:45 ааа, или возможно просто set — ключевое слово. не ключевое, но слово обозначающее контейнер из STL std::set, правда для него требуется заголовок <set> так что дело не в этом |
Potroshitell |
|
я ещё вот хотел бы задать 1 мини-вопросик.. ради него наверно не стоит создавать отдельную тему=) class Temperature { public: Temperature(int gr = 0 , char shkala = ‘C’) : grad(gr) , sys(shkala) {}; void set( int gr , char shkala) {grad = gr; sys = shkala;} /* вот тут. если функция определяется в классе как встроенная, то нужно ставить ; после } ? а то компилятор вроде не ругается в обоих случаях. */ … Сообщение отредактировано: Potroshitell — 15.01.10, 14:08 |
zim22 |
|
Junior Рейтинг (т): 3 |
Цитата Potroshitell @ 15.01.10, 14:07 если функция определяется в классе как встроенная, то нужно ставить ; после } ? не нужно. |
Potroshitell |
|
Mr.Delphist |
|
И это… того… Не пиши «using namespace» в заголовочных файлах, а то это очень «добрый» сюрприз себе на будущее |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- C/C++: Общие вопросы
- Следующая тема
[ Script execution time: 0,0243 ] [ 16 queries used ] [ Generated: 27.06.23, 22:08 GMT ]
So I am working on a program that is due tomorrow and for some reason I keep getting this 2 errors, if I click on the first one it takes me to the iostream file and right before the _STD_BEGIN it wants me to put «;» but if I do that it messes up the file in the library so I am pretty sure I do not have to do that, the second error is in my main.cpp and it points to using namespace std; and it wants me to put a «;» before it =, if I do so the error disappears and it keeps pointing at the iostream error….
I have no idea what to do and my deadline is tomorrow.
This is my main.cpp include section with the modification to using namespace std
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <stdio.h>
#include "Package.h"
;using namespace std;
asked Dec 19, 2013 at 15:12
4
Look for a class
or struct
definition in Package.h
that’s missing its semicolon. ie.
class act
{
// yadda
} // no semicolon here
Then add the missing semicolon.
answered Dec 19, 2013 at 15:15
Joe ZJoe Z
17.4k3 gold badges28 silver badges39 bronze badges
When you get a «missing ;type error on a line that follows closeley behind a bunch of
#includestatements, the likely culprit is a missing
;` in one of the header files. To find out which, start at the last include file, Package.h. You’ll surely find a missing semicolon there. It’s probably missing after a class declaration, as if you had written:
class Foo
{
}
instead of
class Foo
{
};
answered Dec 19, 2013 at 15:16
John DiblingJohn Dibling
99.4k30 gold badges184 silver badges324 bronze badges
Я ОЧЕНЬ новичок в С++ и Open GL, и я пытаюсь отображать 3D-объекты в сцене. он работал нормально с одним, но когда я попытался изменить свой код, чтобы добавить второй, мой код относительно текста HUD, показывающего местоположение камеры, начал давать ошибки. Вышеприведенная ошибка показана и, по-видимому, находится в файле sstream (#include). Я пробовал искать и просить о помощи, но я ничего не понимаю. Когда я комментирую строку #include и код, который ее использует, я получаю аналогичное высказывание «ошибка C2143: синтаксическая ошибка: отсутствует»; перед «использованием» в моем файле 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 лет, не смог это решить. При необходимости я буду включать любой другой конкретный код. И когда я сказал новый для С++ и OpenGL, я действительно много ОЧЕНЬ новый.
Это даже мой первый пост. Я доберусь туда в конце концов.