输入预期的名称

时间:2017-12-14 16:02:05

标签: c++ dos

"错误C:\ BORLANDC \ BIN \ PIXEL.CPP 6:预期输入名称"试图定义" kolor"串。编辑:DOS上的Borland C ++。该程序询问像素的x,y和颜色,清除屏幕并将像素放在屏幕上。怎么了?

#include <graphics.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
int x, y;
string kolor;

void main()
{
    cout << "PIXEL TEST";
    cout << "WPISZ LICZBE X";
    cin >> x;

    cout << "WPISZ LICZBE Y";
    cin >> y;

    cout << "WPISZ KOLOR";
    cin >> COLOR;

    cout << "DZIALAM... TRWA UMIESZCZANIE PIKSELA...";
    int driver = DETECT,mode;
    initgraph(&driver,&mode,"c:\\BORLANDC\\bgi");
        putpixel(x,y,kolor);
    getch();
    closegraph();
}

2 个答案:

答案 0 :(得分:2)

string位于std命名空间中。

因此,您需要撰写std::string kolor;#include <string>

与您的coutcin来电相同。

另一种选择 - using namespace std; - 是可能的,但除了简短的教程程序(它提供清晰度)之外,这是一个糟糕的建议,但由于产生的命名空间污染而很少用于生产代码

如果没有修复编译器错误,那么现在是升级编译器的时候了。 Borland编译器从未是标准的C ++编译器,尽管它在多年前首次发布时确实有它的用途。

如果您过于依赖Borland编译器进行迁移,那么您可以使用C ++标准库的第三方早期版本:STLPort就是这样一个例子。

答案 1 :(得分:1)

问题是Borland c ++中没有string数据类型。您需要使用char[]char*

但是看看你的实现,那不是你需要的,因为putpixel的语法是

void putpixel(int x, int y, int color);

所以你需要传递一个整数作为颜色。查看所有颜色代码的整数值。您也可以将其称为

putpixel(x,y,RED);
putpixel(x,y,BLUE);

某些标准颜色代码已经像这样定义了。

所以你需要在char[]中输入,比较(硬代码),然后传递正确的颜色代码

颜色代码是

0   BLACK
1   BLUE
2   GREEN
3   CYAN
4   RED
5   MAGENTA
6   BROWN
7   LIGHTGRAY
8   DARKGRAY
9   LIGHTBLUE
10  LIGHTGREEN
11  LIGHTCYAN
12  LIGHTRED
13  LIGHTMAGENTA
14  YELLOW
15  WHITE

虽然强烈建议继续使用c ++版本。如果你的学校强迫你学习它,那么没关系,但你需要学习永不版本,因为Borland C ++太过时了,没有人再使用它了