2014-10-08 73 views
1

我在C中製作一個項目。它很簡單,只是一個Hang子手遊戲。用C編程在圖形中輸入文字

得到的邏輯已經導致我只在控制檯中完成。

現在,我正試圖在C中再次使用GRAPHICS。我正在使用Turbo C.

我讀過graphics.h的一些功能:到目前爲止,我已經見過outtext()/outtextxy()這樣的事情。它可以打印一個字符串。

你可以在圖形中輸入字符或字符串嗎?搜索了很多,但什麼都沒看到。 只能看到圖形的例子。

如何在圖形模式下輸入字符,整數等?

回答

1

從內存,而你可以使用普通的標準輸入輸出功能printfscanfgets,顯卡驅動程序會在你的屏幕上畫他們到一個「虛擬光標」的位置和滾動屏幕,當它到達底部。您可以使用非標準的conio.h函數(如gotoxy)並嘗試定位光標,但它仍然是一種平庸的輸入文本的方式,會混淆圖形內容。你也不能使用花哨的字體!

因此,使用getch來閱讀字符而不顯示它們;更新字符串緩衝區(手動處理特殊鍵,例如退格鍵返回),並使用您選擇的字體在屏幕上繪製該緩衝區。

簡短的代碼示例代碼段,讓你開始:

#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); 

之前繪製文本,確保清除前行!我離開了這個,因爲它也是很久以前我用過Turbo-C。

0

爲了從used ..中獲取輸入,您可以使用scanf函數,類似於我們如何在任何非圖形c程序中進行輸入。