我在C中製作一個項目。它很簡單,只是一個Hang子手遊戲。用C編程在圖形中輸入文字
得到的邏輯已經導致我只在控制檯中完成。
現在,我正試圖在C中再次使用GRAPHICS。我正在使用Turbo C.
我讀過graphics.h
的一些功能:到目前爲止,我已經見過outtext()
/outtextxy()
這樣的事情。它可以打印一個字符串。
你可以在圖形中輸入字符或字符串嗎?搜索了很多,但什麼都沒看到。 只能看到圖形的例子。
如何在圖形模式下輸入字符,整數等?
我在C中製作一個項目。它很簡單,只是一個Hang子手遊戲。用C編程在圖形中輸入文字
得到的邏輯已經導致我只在控制檯中完成。
現在,我正試圖在C中再次使用GRAPHICS。我正在使用Turbo C.
我讀過graphics.h
的一些功能:到目前爲止,我已經見過outtext()
/outtextxy()
這樣的事情。它可以打印一個字符串。
你可以在圖形中輸入字符或字符串嗎?搜索了很多,但什麼都沒看到。 只能看到圖形的例子。
如何在圖形模式下輸入字符,整數等?
從內存,而你可以使用普通的標準輸入輸出功能printf
,scanf
和gets
,顯卡驅動程序會在你的屏幕上畫他們到一個「虛擬光標」的位置和滾動屏幕,當它到達底部。您可以使用非標準的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。
爲了從used ..中獲取輸入,您可以使用scanf函數,類似於我們如何在任何非圖形c程序中進行輸入。