编写一个程序,把输入作为字符流读取,直到遇到EOF,令该程序打印每个输入字符及期ASCII码值,注意在ASCII中空格前面的字符是非打印字符,要特殊处理这些字符,如果是非打印字符是换行符或是制表符,则分别打印\n或\t,否则使用控制字符符号,例如ASCII码1是ctrl+A,可以显示为^A,每行打印10对值。
/*#include <stdio.h>
#include <Windows.h>
int main(void)
{
int i = 0;
char ch;
while((ch = getchar()) != '#')
{
i++; //错误说明:计数器位置错误
if(ch == '\n') //采取错误的结构
printf("\n");
else if(ch == '\t')
printf("\t");
else
printf("%c:%d ", ch, ch);
while(i % 10 == 0)
printf("\n");
}
system("pause");
return 0;
}
*/
#include <stdio.h>
#include <Windows.h>
int main(void)
{
int i = 0;
char ch;
while((ch = getchar()) != '#')
{
if(i % 10 == 0)
printf("\n");
switch(ch){
case '\n':
printf("\\n:%d\t", ch);
break;
case '\t':
printf("\\t:%d\t", ch);
break;
case ' ':
printf("sp:%d\t", ch);
break;
default :
if( ch < ' '){
printf("^%c %d\t", ch+64, ch);
}else{
printf("%c:%d\t", ch, ch);
}
}
i++;
}
printf("Done!");
system("pause");
return 0;
}