1

我正在使用 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;
}
4

0 回答 0