我想输入字符并将其存储到数组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();
}
任何建议?
答案 0 :(得分: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);
使用int c,因此代码可以检查EOF。