C语言编程中图形文本的输入

C语言编程中图形文本的输入,c,turbo-c,C,Turbo C,我正在用C语言做一个项目。它很简单,只是一个刽子手游戏 已经有了逻辑,因为我只在控制台上做过 现在,我又在用C语言用图形来做了。我用的是涡轮增压器C 我已经阅读了graphics.h的一些函数:到目前为止,我已经看到了outtext()/outtextxy()类似的东西。它可以打印字符串 您可以在图形中输入字符或字符串吗?找了很多,但什么也没看到。 仅看到绘制形状示例 如何在图形模式下输入字符、整数等?从内存中,当您可以使用常规的stdio函数printf、scanf和gets,图形驱动程序将它

我正在用C语言做一个项目。它很简单,只是一个刽子手游戏

已经有了逻辑,因为我只在控制台上做过

现在,我又在用C语言用图形来做了。我用的是涡轮增压器C

我已经阅读了
graphics.h
的一些函数:到目前为止,我已经看到了
outtext()
/
outtextxy()
类似的东西。它可以打印字符串

您可以在图形中输入字符或字符串吗?找了很多,但什么也没看到。 仅看到绘制形状示例

如何在图形模式下输入字符、整数等?

从内存中,当您可以使用常规的stdio函数
printf
scanf
gets
,图形驱动程序将它们绘制在屏幕上的“虚拟光标”位置,并在屏幕到达底部时滚动屏幕。您可以使用非标准的
conio.h
功能,如
gotoxy
,并尝试定位光标,但这仍然是一种普通的文本输入方式,会弄乱图形内容。你也不能使用花哨的字体

因此,使用
getch
读取字符而不显示它们;更新字符串缓冲区(手动处理特殊键,如Backspace和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);
int the_end=0;
做
{
outtextxy(0,0,inputbuf);
c=getch();
开关(c)
{
案例8:/*退格*/
如果(输入位置)
{
输入位置--;
inputbuf[input_pos]=0;
}
打破
案例13:/*返回*/
_端=1;
打破
案例27:/*退出=中止*/
inputbuf[0]=0;
_端=1;
打破
违约:

如果(input_pos=''&&c用于从已使用的程序中获取输入。您可以使用类似于我们在任何非图形c程序中获取输入的scanf函数。

您可以通过使用普通scanf函数来完成此操作。通过使用sprintf将整数/任何变量复制到字符串中。现在,您可以使用outtextxy在指定的loca中设置字符串使用x,y轴进行编辑。检查Geeksforgeks以学习sprintf语法

我知道太晚了。希望它能帮助别人