我的一项任务有点问题。关于一个如下问题:
使用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和VScode中使用MinGW64作为IDE。
答案 0 :(得分:0)
根据要求,尚不清楚程序应在采用一个字符后做出响应。不管输入的行缓冲如何,由于输出相同,因此可能不需要其他工作。
在Linux上,您可以将终端移至“原始”模式(使用系统调用或使用stty
)。 Windows没有此类实用程序。如果必须,请查看:Get key press in windows console
鉴于这是基本的Unix执行功能,我怀疑您需要实现上述功能。