C primer plus 第八章 练习2:

编写一个程序,把输入作为字符流读取,直到遇到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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值