【发布时间】:2019-11-17 17:37:25
【问题描述】:
我的一项作业有一点问题。这是一个问题,如下所示:
使用 Switch 语句,编写一个读取值的程序,直到按下 ENTER 键。如果按下“换行符”、“制表符”或“退格”字符,则输出它们的名称。
这是我到目前为止所做的。
int main(){
char x;
x=getchar();
while(x!='\r')
{
switch (x)
{
case '\t':
printf("Tab!");
break;
case '\n':
printf("Newline!");
break;
case '\b':
printf("Backspace!");
break;
default: break;
}
x = getchar();
}
/* switch(x){
case '\r': break;
case '\t': printf("Tab!");
case '\n': printf("Newline!");
case '\b': printf("Backspace!");
default: x=getch();
} */
return 0;
}
我的问题是,每次我使用getch() 或scanf() 读取一个字符时,我都会按enter,所以......程序并没有做太多事情。您对我如何解决此问题有任何想法吗?换行符和 Enter 键不一样吗?
我在 Windows 10 中使用 MinGW64 和 VScode 作为 IDE。
【问题讨论】:
-
第一:换行不是键,是字符!在许多环境中无需按 Enter 即可阅读,但它是特定于平台的,但你没有说这是否适用于 Windows、Unix、嵌入式...
getcharreturns an int. -
对不起,它是在 Windows 上,那我该怎么办?
-
请编辑您的问题以包括。无论如何,这行得通吗?stackoverflow.com/questions/27653016/…this?
-
使用标准 C 和行缓冲输入,在输入
'\n'(Enter) 之前,代码什么也得不到。 -
我使用 MinGW64 和 VScode 作为 IDE