Tag: console application

C控制台重新绘制口吃/不流畅

我试图在控制台上制作一个简单的蛇游戏。 我使用int矩阵将所有数据(边界,蛇,食物)存储在它们的确切位置。 我现在使用这个主代码来运行程序: int main() { int tab[28][120]; create(tab, 28, 120); paint(tab, 28, 120); char i = ‘1’; char direction = ‘R’; while(i != ‘q’) { if (kbhit()) i =getch(); translate(tab, direction, 28, 120); paint(tab, 28, 120); Sleep(300); } } 主要的问题是,每次重新绘制矩阵时,它都会断断续续。 我尝试将if(kbhit())语句放在for()循环中,并使用另一个paint()调用,同时采用Sleep(300)来加速绘制过程,但它仍然口吃,只是更快。 使用线程会有帮助吗? 我不善于理解他们。 这里是整个程序,主要针对那些想要测试它的人: #include #include #include #include void paint(int tab[28][120], int ligneMax, int […]

读取控制台调色板的RGB值

肉 在C或C ++中有没有办法直接读取调色板RGB值? 特别有趣的是xterm(和其他人)使用的扩展颜色空间来定义多达256种终端颜色。 土豆 这个例子就是我要定义自己的颜色(使用ANSI转义序列,如\e]4;3;rgb:cc/78/33\e\\ ,或直接在c)但我需要保存我重新定义它们之前的用户颜色(在不太可能的情况下,他们已经重新定义了它们的颜色),以便我可以在程序完成时恢复它们。 Clobbering用户设置不是很好。 现在我的目标是使用ANSI转义序列以客户端方式执行此操作。 但是,由于我无法找到你如何得到颜色,我开始考虑用c或c ++来做这件事。 该解决方案将被编写为具有原生扩展(基本上是嵌入式c或c ++代码)的ruby gem,我的目标是获得跨平台解决方案,即使主要目标是OS X,其次是Linux环境…… 的调味汁 从我最初的实验开始,我已经到了可以为调色板中的代码点定义所需颜色的点。 我也可以轻松恢复默认的系统颜色(因为它们是ANSI标准)。 我在ANSI转义码中有一种方法可以做到这一点,但是没有找到。 我认为这是保存在某个地方的内存中,如果有任何方法可以找到哪里,阅读颜色应该很容易…… 甜点 总结到目前为止评论中的信息: 看起来一直这样做的唯一方法就是打印出不同颜色的█个字符的屏幕并抓住它的颜色。 由于这个项目应该是三个主要操作系统的跨平台,因为Linux目前在用户上有3个显示管理器,他们使用的方式和windows有两个(7和8)我只能想象有趣的小时和小时将会 :) 所以我的“解决方案”™只是破坏用户的颜色(如果他们有除系统默认值以外的任何东西……那么,让我们面对它是非常罕见的)。 我将提供一个设置文件,用户可以告诉插件如果他们对系统默认值不满意应该恢复哪些颜色。 务实和无聊,但它让我再次继续:)

Windows控制台应用程序 – 关闭事件的信号

在Windows控制台应用程序中,可以使用以下命令按住ctrl+c : #include #include void SigInt_Handler(int n_signal) { printf(“interrupted\n”); } int main(int n_arg_num, const char **p_arg_list) { signal(SIGINT, &SigInt_Handler); getchar(); // wait for user intervention } 这很有效,除非用户按下关闭控制台窗口的十字×根本不起作用。 那有什么信号吗? 我需要这个的原因是我有这个CUDA应用程序,如果在计算某些东西时关闭,它会导致计算机崩溃。 代码是多平台的,所以我更喜欢使用信号而不是SetConsoleCtrlHandler 。 有办法吗?

getch()和getchar()有什么区别?

getch和getchar函数之间的确切区别是什么?