2014-10-08 1 views
1

나는 C로 프로젝트를 만들고 있습니다. 간단하고 행맨 게임입니다.C 프로그래밍에서 그래픽으로 입력 텍스트

로직을 얻은 것은 이미 콘솔에서만 수행했습니다.

이제 저는 그래픽으로 C에서 다시 시도하고 있습니다. 나는 터보 C.를 사용하고있다.

나는 graphics.h의 기능을 읽었다. 지금까지 나는 outtext()/outtextxy()과 비슷한 것을 보았다. 문자열을 인쇄 할 수 있습니다.

그래픽에 문자 또는 문자열을 입력 할 수 있습니까? 많이 찾았지만 아무 것도 보지 못했습니다. 드로잉 모양 예제 만 보았습니다.

그래픽 모드에서 문자, 정수 등을 어떻게 입력합니까?

답변

1
메모리에서

, 당신은 일반 표준 입출력 기능 printf, scanf을 사용할 수 있지만, 및 gets, 그래픽 드라이버는 "가상 커서"위치에 화면을 통해 그들을 페인트와 바닥에 닿을 때 화면을 스크롤됩니다. gotoxy과 같은 비표준 conio.h 함수를 사용하여 커서를 배치 할 수는 있지만 그래도 텍스트를 입력하는 평범한 방법으로 그래픽을 엉망으로 만듭니다. 당신은 또한 멋진 글꼴을 사용할 수 없습니다!

문자를 표시하지 않고 문자를 읽으려면 getch을 사용하십시오. 백 스페이스Return과 같은 특수 키를 수동으로 처리하는 문자열 버퍼를 업데이트하고 원하는 글꼴을 사용하여 화면에 그립니다. 코드의

짧은 샘플 조각은 당신이 시작하려면 :

#define MAX_INPUT_LEN 80 

char inputbuf[MAX_INPUT_LEN]; 
int input_pos = 0; 

을 한 후,

int the_end = 0; 
do 
{ 
    outtextxy (0,0, inputbuf); 
    c = getch(); 
    switch (c) 
    { 
     case 8: /* backspace */ 
      if (input_pos) 
      { 
      input_pos--; 
      inputbuf[input_pos] = 0; 
      } 
      break; 
     case 13: /* return */ 
      the_end = 1; 
      break; 
     case 27: /* Escape = Abort */ 
      inputbuf[0] = 0; 
      the_end = 1; 
      break; 
     default: 
      if (input_pos < MAX_INPUT_LEN-1 && c >= ' ' && c <= '~') 
      { 
      inputbuf[input_pos] = c; 
      input_pos++; 
      inputbuf[input_pos] = 0; 
      } 
    } 
} while (!the_end); 

메인 루프 텍스트를 그리기 전에, 이전 행을 삭제해야합니다에! 도 너무 전 터보 -C를 사용했기 때문에 나는 그것을 버렸습니다.

0

우리는 그래픽이 아닌 C 프로그램에서 입력을받는 것과 비슷한 scanf 함수를 사용할 수 있습니다.

관련 문제