cpp摆图形程序编译错误

问题描述

当尝试使用DevC ++编译简单的图形程序时,出现以下错误:

#include<math.h>
#include<process.h>
#include<dos.h>
#include<iostream>
#include<conio.h>
#include<graphics.h>
int x1=300,y1=180,x,y;
void display(double i)
{
    circle(300,130,50);
    line(210,60,210,320);
    line(210,390,60);
    line(390,320,320);
    outtextxy(295,88,"12");
    outtextxy(260,"9");
    outtextxy(340,"3");
    outtextxy(295,168,"6");
    line(300,300,98);
    line(300,98,297,101);
    line(300,303,101);
    line(337,130);
    line(337,334,127);
    line(337,133);
    x=x1+95*cos(i);
    y=y1+95*sin(i);
    line(x1,y1,y);
    circle(x,y,10);
    delay(30);
    clearviewport();
}

int main()
{
    int gd=DETECT,gm;
    double i;
    initgraph(&gd,&gm,"C:\\Tc\\BGI");
    while(!kbhit())
    {
        for(i=2;i>1;i=i-0.01)
            display(i);
        for(i=1;i<2;i=i+0.01)
            display(i);
    }
    getch();
    return 0;
    }
7   12  \C++ Code\Test.cpp  [Error] 'int y1' redeclared as different kind of symbol
1   0   \C++ Code\Test.cpp  In file included from Test.cpp
266 24  \Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\math.h  [Note] previous declaration 'double y1(double)'
        \C++ Code\Test.cpp  In function 'void display(double)':
15  23  \C++ Code\Test.cpp  [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
16  23  \C++ Code\Test.cpp  [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
17  23  \C++ Code\Test.cpp  [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
18  23  \C++ Code\Test.cpp  [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
26  15  \C++ Code\Test.cpp  [Error] invalid operands of types 'double(double)' and 'double' to binary 'operator+'
27  16  \C++ Code\Test.cpp  [Error] invalid conversion from 'double (*)(double)' to 'int' [-fpermissive]
6   0   \C++ Code\Test.cpp  In file included from Test.cpp
212 6   \Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\graphics.h  [Note] initializing argument 2 of 'void line(int,int,int)'
        \C++ Code\Test.cpp  In function 'int main()':
37  33  \C++ Code\Test.cpp  [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
28      \C++ Code\Makefile.win  recipe for target 'Test.o' failed

解决方法

不幸的是,standard library的名字是y1,所以您不能将其用作全局变量。

给它起另一个名字。

同样,您似乎没有使用C ++功能,因此应删除#include<iostream>并将源代码编译为C,以消除有关char*的警告。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...