2016-09-27 10 views
1

conio.h에있는 textcolor() 함수에 사용자 입력 색상을 전달하려면 어떻게해야합니까?사용자 입력 색상을 textcolor()에 전달하는 방법은 무엇입니까?

textcolor(BLUE); 
cprintf("Hello"); 

는 잘 작동하지만

char c[20]; 
gets(c); 
textcolor(c); 
cprintf("Hello"); 

오류가 발생합니다. 나는 그것이 자신을 작동시킬 것으로 기대하지 않았다. 그래서 질문은, 어떻게 사용자가 텍스트를 표시하기위한 색을 입력 할 수 있는가하는 것입니다. 어리석은 제약으로 인해 이전 터보 C++에서이 작업을 수행해야하며 graphics.h, dos.h 등을 사용할 수 없습니다. 따라서 textcolor()을 사용하는 솔루션 자체가 훌륭합니다.

+0

'BLUE'는 문자열이 아니며, 'gets'를 사용하여 읽은 값은 문자열입니다. 조회 테이블이나 일련의'if' 문을 사용하여 해당 문자열을 값으로 변환해야합니다. – CAB

+0

또한 '오류가 발생했습니다'라는 메시지가 표시되면 질문에 오류 정보를 포함 시키십시오. – CAB

답변

1

코드를 다음과 같이 보일 것입니다 :

char c[20]; 
gets(c); 

if (strcmp("BLACK",c) == 0) {textcolor(BLACK);} 
else if (strcmp("BLUE",c) == 0) {textcolor(BLUE);} 
else if ... more colors here ... 

cprintf("Hello"); 

는 1 gets() 반환 그러므로 문자열 strcmp() 함수의 정수 값을 동일 매크로되면, BLUE이 문자열이 아닌 기억하십시오.