"错误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();
}
答案 0 :(得分:2)
string
位于std
命名空间中。
因此,您需要撰写std::string kolor;
和#include <string>
。
与您的cout
和cin
来电相同。
另一种选择 - 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 ++太过时了,没有人再使用它了