C语言中关于处理输入字符并且输出其字符本身和ASCII码的问题

C语言中关于处理输入字符并且输出其字符本身和ASCII码的问题

问题描述:

图片说明

这段代码在处理输出制表符、换行符以及其他小于空格的字符时会多输出一次,想请教一下为什么会出现这个现象?

输出制表符和换行符:
图片说明

if上面的printf("%c:%d ", ch, ch);前面加上else
否则if判断成立,输出一次,到下面又输出1次,就重复了。