我正在用C.制作一个项目。它很简单,只是一个刽子手游戏。
已经得到了逻辑,因为我只在控制台中完成了这项工作。
现在,我试图用GRAPHICS再次在C中完成它。我正在使用Turbo C.
我已经阅读了graphics.h
的一些功能:到目前为止,我已经看到了outtext()
/ outtextxy()
这样的内容。它可以打印一个字符串。
您可以在图形中输入字符或字符串吗?搜索了很多但没有看到任何东西。 仅看到绘制形状示例。
如何在图形模式下输入字符,整数等?
答案 0 :(得分:1)
在内存中,当你可以使用常规的stdio函数printf
,scanf
和gets
时,图形驱动程序会将它们画在屏幕上“虚拟光标”位置,并在屏幕到达底部时滚动屏幕。您可以使用非标准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语法。
我知道为时已晚。希望对别人有帮助!!