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