我正在使用 Mavericks 上的 Xcode 在 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;
}