使用getche输入字符并将其存储到数组中

时间:2016-12-06 16:51:33

标签: c

我想输入字符并将其存储到数组StringTemp[5][50]。如果我按下回车键,它将停止输入字符。但它不起作用

char StringTemp[5][50];
char c;
int i,o;
i = 1;
o = 1;

c = getche();
while (c != EOF && c != '\n') {
    if (c == ' ') {
        i++;
        o = 1;
    }
    else {
        StringTemp[i][o] = c;
        o++;
    }
    c = getche();
}

任何建议?

1 个答案:

答案 0 :(得分:1)

  1. 根据键盘和标准输入有变化,但getche()获取密钥而不回显。当用户键入Enter时,un C-ified char可能是' \ n'或者' \ r'。打印时,您将获得相应的换行或回车。由于Enter映射到' \ r'在键盘上,当通过getche()获取时,测试并打印' \ n'。当通过getchar()获取时,C将Enter转换为' \ n'。

    int ch = getche();

    if(ch ==' \ r')c =' \ n';

    printf("%c",ch);

  2. 使用int c,因此代码可以检查EOF。