我正在使用Xver on Mavericks在c中开发一个小型控制台计算器项目。我已经弄明白了如何检测一个击键,现在我需要一种方法来突出显示文本,比如改变它的背景颜色等等,所以当用户按下一个键时,1
例如计算器上的那个键就是只要他拿着钥匙突出显示,创建一个漂亮的按钮推模拟,但我不知道如何,任何想法?:
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
char myGetch() { // an alternative getch function
char buf = 0;
struct termios old = {0};
if (tcgetattr(0, &old) < 0)
perror("tcsetattr()");
old.c_lflag &= ~ICANON;
old.c_lflag &= ~ECHO;
old.c_cc[VMIN] = 1;
old.c_cc[VTIME] = 0;
if (tcsetattr(0, TCSANOW, &old) < 0)
perror("tcsetattr ICANON");
if (read(0, &buf, 1) < 0)
perror ("read()");
old.c_lflag |= ICANON;
old.c_lflag |= ECHO;
if (tcsetattr(0, TCSADRAIN, &old) < 0)
perror ("tcsetattr ~ICANON");
return (buf);
}
int main(int argc, const char * argv[]) {
// printing a simple box
printf(" ⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼\n");
printf("⎹⎹ press (q) to quit. ⎸⎸\n");
printf("⎹⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎸⎸\n");
printf("⎹⎹⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎸⎸\n");
printf("⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎸\n");
printf("⎹ C ⎸ ⎸ ± ⎸ ⎸ ÷ ⎸ ⎸ ✕ ⎸\n");
printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
printf("⎹ 7 ⎸⎹ 8 ⎸⎹ 9 ⎸⎹ - ⎸\n");
printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
printf("⎹ 4 ⎸⎹ 5 ⎸⎹ 6 ⎸⎹ + ⎸\n");
printf("⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎸⎹⎼⎼⎼⎼⎼⎼⎼⎸\n");
printf("⎹ 1 ⎸⎹ 2 ⎸⎹ 3 ⎸⎹ ⎸\n");
printf("⎹ ⎸⎹ ⎸⎹ ⎸⎹ ⎸\n");
printf("⎹⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺ ⎸⎹ = ⎸\n");
printf("⎹ 0 ⎹ ⎹ . ⎸⎹ ⎸\n");
printf("⎹ ⎹ ⎹ ⎸⎹ ⎸\n");
printf(" ⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺\n");
char c;
c = myGetch() ;
printf("%c\n",c);
return 0;
}