C Primer 8-2

C Primer 8-2
编写一个程序,在遇到 EOF 之前,把输入作为字符流读取。程序要
打印每个输入的字符及其相应的ASCII十进制值。注意,在ASCII序列中,空
格字符前面的字符都是非打印字符,要特殊处理这些字符。如果非打印字符
是换行符或制表符,则分别打印\n或\t。否则,使用控制字符表示法。例
如,ASCII的1是Ctrl+A,可显示为^A。注意,A的ASCII值是Ctrl+A的值加上
64。其他非打印字符也有类似的关系。除每次遇到换行符打印新的一行之
外,每行打印10对值。(注意:不同的操作系统其控制字符可能不同。)

#include<stdio.h>

int main(void)
{
    
    
	int ch, i=0;
	while ((ch = getchar()) != EOF)
	{
    
    
		if (ch > ' ')
			printf("%c", ch);
		else
		{
    
    
			switch (ch)
			{
    
    
			case '\t': printf("\\t");
				break;
			case '\n': printf("\\n");
				break;
			default:printf("^%c", ch + 64);
				break;
			}
		}
		i++;
		if (i % 10 == 0)
			putchar('\n');
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_49859755/article/details/113123693