在看KR的《C程序设计语言》时,做了一个看似很简单的练习,当键盘输入Backspace时输出回退符(\b)。
试了下没成功,在网上搜索了下发现很多朋友都遇到了。所以简单的记录下,10年前就学C了,这个问题都没搞定,温故而知新,同时提醒自己基础很重要啊。
使用的getchar(),不能捕获到键盘输入Backspace:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c;
while((c = getchar()) != EOF)
{
if(c == '\t')
printf("\\t");
else if(c == '\b')
{
printf("\\b");
}
else if(c == '\\')
printf("\\");
}
return 0;
}
将
getchar()改为getch即可:
while((c = getch()) != EOF)
getchar()是流缓冲,用户按下回车键后,才从输入流中一个字符一个字符的读取;
getch()是每输入一个字符都捕获。