a function-definition is not allowed here before '{' token что и как?
#include <iostream>
#include <conio.h>
#include <winbgim.h>
#include <math.h>
#define ESC 27 //escape
#define LEFT 75 //??????? ?????
#define RIGHT 77 //??????? ??????
#define TOP 72 //??????? ?????
#define BOT 80 //??????? ????
#define ROTX 83 //del
#define ROTY 71 //home
#define ROTZ 79 //end
#define RSZP 73 //pgup
#define RSZM 81 //pgdn
struct Dot3d
{
int x, y, z;
};
Dot3d Cube[8];
int Rebro = 200;
int Rebra[12][2] = {{0, 1}, {1, 2}, {2, 3}, {3, 0}, {4, 5}, {5, 6}, {6, 7}, {7, 4}, {0, 4}, {1, 5}, {2, 6}, {3, 7}};
int AngleX = 0;
int AngleY = 0;
int AngleZ = 0;
void PaintCube(Dot3d*);
void InitCube(int, int, int, int);
void OffsetCubeHorizontal(int);
void OffsetCubeVertical(int);
void OffsetCubeResize(int);
void rotationX(int);
void rotationZ(int);
void rotationY(int);
void ResizePlus(int);
void ResizeMinus(int);
int main(int argc, char** argv)
{
int Krok = 10;
int Mx, My;
initwindow(1200, 1000);
Mx = getmaxx() / 2;;
My = getmaxy() / 2;;
InitCube(200, 200, 0, Rebro);
PaintCube(Cube);
int v;
while (getch() != ESC)
{
{
v = getch();
if (v == RIGHT)
{
OffsetCubeHorizontal(Krok);
};
if (v == LEFT)
{
OffsetCubeHorizontal(-Krok);
};
if (v == BOT)
{
OffsetCubeVertical(Krok);
};
if (v == TOP)
{
OffsetCubeVertical(-Krok);
};
if (v == ROTX)
{
rotationX(15) ;
}
if (v == ROTY)
{
rotationY(15) ;
}
if (v == ROTZ)
{
rotationZ(15) ;
}
if (v == RSZM)
{
ResizeMinus(5) ;
}
if (v == RSZP)
{
ResizePlus(5) ;
}
std::cout << v;
}
cleardevice();
PaintCube(Cube);
}
getch();
return 0;
}
void InitCube(int x1, int y1, int z1, int m)
{
Cube[0].x = x1;
Cube[0].y = y1;
Cube[0].z = z1;
Cube[1].x = Cube[0].x + m;
Cube[1].y = Cube[0].y;
Cube[1].z = Cube[0].z;
Cube[2].x = Cube[0].x + m;
Cube[2].y = Cube[0].y;
Cube[2].z = Cube[0].z + m;
Cube[3].x = Cube[0].x;
Cube[3].y = Cube[0].y;
Cube[3].z = Cube[0].z + m;
Cube[4].x = Cube[0].x;
Cube[4].y = Cube[0].y - m;
Cube[4].z = Cube[0].z;
Cube[5].x = Cube[0].x + m;
Cube[5].y = Cube[0].y - m;
Cube[5].z = Cube[0].z;
Cube[6].x = Cube[0].x + m;
Cube[6].y = Cube[0].y - m;
Cube[6].z = Cube[0].z + m;
Cube[7].x = Cube[0].x;
Cube[7].y = Cube[0].y - m;
Cube[7].z = Cube[0].z + m;
for (int i = 1; i < 8; i++)
{
Cube[i].x = Cube[0].x + (Cube[i].x - Cube[0].x) * cos(
AngleY * 3.14 / 180) - (Cube[i].z -
Cube[0].z) * sin(AngleY * 3.14 / 180);
Cube[i].z = Cube[0].z + (Cube[i].x - Cube[0].x) * sin(
AngleY * 3.14 / 180) + (Cube[i].z -
Cube[0].z) * cos(AngleY * 3.14 / 180);
Cube[i].y = Cube[0].y + (Cube[i].y - Cube[0].y) * cos(
AngleX * 3.14 / 180) - (Cube[i].y -
Cube[0].y) * sin(AngleX * 3.14 / 180);
Cube[i].z = Cube[0].z + (Cube[i].z - Cube[0].z) * sin(
AngleX * 3.14 / 180) + (Cube[i].z -
Cube[0].z) * cos(AngleX * 3.14 / 180);
Cube[i].x = Cube[0].x + (Cube[i].x - Cube[0].x) * cos(
AngleZ * 3.14 / 180) - (Cube[i].y -
Cube[0].y) * sin(AngleZ * 3.14 / 180);
Cube[i].y = Cube[0].y + (Cube[i].x - Cube[0].x) * sin(
AngleZ * 3.14 / 180) + (Cube[i].y -
Cube[0].y) * cos(AngleZ * 3.14 / 180);
}
for (int i = 1; i < 8; i++)
{
}
for (int i = 1; i < 8; i++)
{
}
}
void PaintCube(Dot3d* c)
{
int yt1, yt2, xt1, xt2;
double koefZX = sin(AngleX * 3.14 / 180);
double koefZY = cos(AngleY * 3.14 / 180);
koefZX = 0.3;
koefZY = 0.2;
for (int i = 0; i < 12; i++)
{
xt1 = c[Rebra[i][0]].x - c[Rebra[i][0]].z * koefZX;
yt1 = c[Rebra[i][0]].y - c[Rebra[i][0]].z * koefZY;
xt2 = c[Rebra[i][1]].x - c[Rebra[i][1]].z * koefZX;
yt2 = c[Rebra[i][1]].y - c[Rebra[i][1]].z * koefZY;
setcolor(i + 2);
line(xt1, yt1, xt2, yt2);
}
}
void OffsetCubeHorizontal(int ofs)
{
for (int i = 0; i < 8; i++)
{
Cube[i].x = Cube[i].x + ofs;
}
}
void OffsetCubeVertical(int ofs)
{
for (int i = 0; i < 8; i++)
{
Cube[i].y = Cube[i].y + ofs;
}
}
void OffsetCubeResize(int r)
{
Rebro = Rebro + r;
}
void rotationX(int a)
{
AngleX = AngleX + a;
InitCube(Cube[0].x, Cube[0].y, Cube[0].y, Rebro);
}
void rotationY(int a)
{
AngleY = AngleY + a;
InitCube(Cube[0].x, Cube[0].y, Cube[0].y, Rebro);
}
void rotationZ(int a)
{
AngleZ = AngleZ + a;
InitCube(Cube[0].x, Cube[0].y, Cube[0].y, Rebro);
}
void ResizePlus(int r)
{
Rebro = Rebro + r;
InitCube(Cube[0].x, Cube[0].y, Cube[0].y, Rebro);
}
void ResizeMinus(int r)
{
Rebro = abs(Rebro - r);
InitCube(Cube[0].x, Cube[0].y, Cube[0].y, Rebro);
int main()
{
menu();
}
int menu()
{
setlocale(LC_ALL, "Ukrainian");
cout << " ГЕОМЕТРИЧНI ПЕРЕТВОРЕННЯ Будинка\n"
<< endl;
cout << ">|Виберiть один iз пунктiв меню|<\n" <<
endl;
cout << "1. Демонстрацiя фiгури\n"
<< "2. Рух Будинка\n"
<< "3. Масштаб будинка\n"
<< "4. Обертання Будинка\n"
<< "5. Керування\n"
<< "6. Про автора\n"
<< "7. Вихiд" << endl;
cout << "|>>> ";
int v;
int variant;
while (true)
{
cin >> variant;
switch (variant)
{
case 1:
cout << "Демонстрацiя фiгури" << endl;
Cube_demostration();
system("pause");
main();
case 2:
cout << "Рух будинка" << endl;
Cube_movement();
system("pause");
main();
case 3:
cout << "Масштаб будинка" << endl;
Cube_Resize();
system("pause");
main();
case 4:
cout << "Обертання Будинка" << endl;
Cube_rotation();
system("pause");
main();
case 5:
cout << "Довiдка:" << endl;
cout << "Left Arrow(2) - перемiщення будинка в лiву сторону\n"
<< "Right Arrow(2) - перемiщення будинка в праву сторону\n"
<< "Up Arrow(2) - перемiщення будинка вверх\n"
<< "Down Arrow(2) - перемiщення будинка вниз\n"
<< "KP_PLUS(3) - збiльшення масштабу\n"
<< "KP_MINUS(3) - зменшення масштабу\n"
<< "Eng D(4) - Обертання по осi X\n"
<< "Eng S(4) - Обертання по осi Y\n"
<< "Eng A(4) - Обертання по осi Z\n";
system("pause");
main();
case 6:
cout << "Про автора:" << endl;
cout << "Черничка Богдан , студент групи КН-23, над данною роботою скорбив стаждав но всетаки написав ..../n"
<< " Природничо-гуманiтарного коледжу ДВНЗ \"УжНУ\" "
<< endl;
system("pause");
main();
case 7:
cout << "Вихiд" << endl;
exit(EXIT_SUCCESS);
break;
main();
default:
cerr << "Ви обрали не правильний варiант" <<
endl;
exit(EXIT_FAILURE);
system("pause");
main();
}
return 0;
}
Здравствуйте , буду короток у меня есть простой код на C++ но так как я начинающий всех аспектов и тонкостей не знаю , так вот в чем дело у меня в ниже приложенном коде возникает ошибка [Error] a function-definition is not allowed here before '{' token а также вместе с ней возникает [Error] expected '}' at end of input прошу помочь в решении данной проблемы спасибо ВОТ МОЙ КОД
Ответы (1 шт):
Автор решения: 0x25
→ Ссылка
Вы определяете функцию main() внутри другой функции. Вынесите её определение в глобальный scope. И вызывать её из других функций нельзя, т.к. это точка входа в программу.