在C编程中输入图形中的文本

时间:2014-10-08 10:08:12

标签: c turbo-c

我正在用C.制作一个项目。它很简单,只是一个刽子手游戏。

已经得到了逻辑,因为我只在控制台中完成了这项工作。

现在,我试图用GRAPHICS再次在C中完成它。我正在使用Turbo C.

我已经阅读了graphics.h的一些功能:到目前为止,我已经看到了outtext() / outtextxy()这样的内容。它可以打印一个字符串。

您可以在图形中输入字符或字符串吗?搜索了很多但没有看到任何东西。 仅看到绘制形状示例。

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

3 个答案:

答案 0 :(得分:1)

在内存中,当你可以使用常规的stdio函数printfscanfgets时,图形驱动程序会将它们画在屏幕上“虚拟光标”位置,并在屏幕到达底部时滚动屏幕。您可以使用非标准conio.h函数(例如gotoxy)并尝试定位光标,但它仍然是输入文本的平庸方式,搞乱图形内容。你也不能使用花哨的字体!

所以使用getch来阅读字符而不显示它们;更新字符串缓冲区(手动处理特殊键,如 Backspace 返回),并使用您选择的字体在屏幕上绘制。

一个简短的代码示例片段,可以帮助您入门:

#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。

答案 1 :(得分:0)

为了从使用过的...中获取输入,你可以使用类似于我们在任何非图形c程序中输入的scanf函数。

答案 2 :(得分:-1)

您可以通过使用常规scanf功能来执行此操作。并通过使用sprintf将整数/任何变量复制到字符串中。现在,您可以使用outtextxy通过x,y轴在指定位置设置字符串。检查geeksforgeeks以学习sprintf语法。

我知道为时已晚。希望对别人有帮助!!