2017-12-14 22 views
0

"kolor"문자열을 정의하려고 할 때 "오류 C : \ BORLANDC \ BIN \ PIXEL.CPP 6 : 예상되는 유형 이름"입니다. 에디터 : 도스의 볼랜드 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

저는 컴파일러가 "표준"이라고 충분히 가정합니다. 신청할 나의 대답. 컴파일러 업그레이드를 고려하십시오. 터보 C++는 어떤 표준도 잘 따르지 않습니다. – Bathsheba

+1

예 : https://www.visualstudio.com/vs/visual-studio-express/ – pm100

+0

char *를 사용해보십시오. 예 : char * kolor; – tatmanblue

답변

2

stringstd 네임 스페이스에 있습니다.

따라서 std::string kolor;#include <string>을 작성해야합니다.

귀하의 coutcin으로 전화하십시오.

대안 - using namespace std;이 - 가능하지만, (이 명확성을 준다 곳), 그러나 거의 인한 결과 네임 스페이스 오염에 생산 코드에 사용되지는 짧은 튜토리얼 프로그램을 제외하고 가난한 조언을합니다.

이 아니기 때문에 컴파일러 오류가 수정되면 컴파일러를 업그레이드해야합니다. 볼랜드 컴파일러는 을 결코 가지고 있지 않다.은 표준 C++ 컴파일러 였지만, 몇 년 전에 처음 릴리즈되었을 때 사용되었다.

마이그레이션 할 Borland 컴파일러에 너무 많이 묶여 있다면 C++ 표준 라이브러리의 제 3 자 초기 버전을 사용할 수 있습니다. STLPort는 그러한 예 중 하나입니다.

+0

아무것도 작동하지 않습니다. – WatermelonPL

+3

OP는 Borland C++을 사용합니다. std와 namespace조차 가지고 있지 않습니다. –

+0

@ArunAS는 문자열을 지원합니까? – pm100

1

잘 문제는 Borland C++에 string 데이터 형식이 없다는 것입니다. 당신은 사용해야하는 putpixel에 대한 구문이

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

그래서 당신은 정수로 전달 될 필요가 있기 때문에 당신이 필요하지 않습니다 char[] 또는 char*

하지만 구현을보고, 그 색깔. 모든 색상 코드의 정수 값을 조사하십시오.

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++의 버전이 없다. 학교에서 배울 것을 강요한다면 괜찮습니다.하지만 볼랜드 C++는 너무 오래되어서 아무도 더 이상 사용하지 않으므로 결코 버전을 배우지 않아도됩니다.