| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 714 人关注过本帖
标题:请教关于C primer puls的一道课后题
只看楼主 加入收藏
易晋
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2013-1-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
请教关于C primer puls的一道课后题
第八章的一道课后题,把输入作为字符流读取,直到遇到EOF,令程序打印每个字符及其ASCII码,非打印字符换行符和制表符打印为\n,\t,其他打印为如ctrl+A打印为^A的形式,每行打印十对值。
我的程序是这样的,我之在ouput函数中有加一个计数器,每当打印一对值,计数器加一,若为十,打印换行符,可是没有起到作用,请问是错在哪里了?另外,这段程序不足的地方还请帮忙指出,谢谢了

#include<stdio.h>
#include<ctype.h>
void output(int ch);
int main(void)
{
    int ch;

    printf("请输入字符!\n");
    while((ch=getchar())!=EOF)    //检测到EOF即跳出循环
        output(ch);
    getch();
    return 0;
}
void output(int ch)
{
    int i=0;

    if(isspace(ch))    //处理非打印字符
    {
        switch(ch)
        {
        case '\n':
            printf("\\n:%d ",ch);
            i++;
            break;
        case '\t':
            printf("\\t:%d ",ch);
            i++;
            break;
        case ' ':
            printf("SPACE:%d ",ch);
            i++;
            break;
        }
    }
    else if(isupper(ch+64)&&ch<' ')
    {
        printf("^%c:%d ",ch+64,ch);
        i++;
    }
    else        
    {
        printf("%c:%d ",ch,ch);
        i++;
    }
    if(i==10)
    {
        i=0;
        printf("\n");
    }
}

[ 本帖最后由 易晋 于 2013-1-28 21:38 编辑 ]
搜索更多相关主题的帖子: 制表符 换行符 include 打印 
2013-01-28 21:34
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
收藏
得分:0 
要不先get一次ch再判断是不是EOF?

我不知道我能否当程序员,但我依然热爱编程!
2013-01-29 00:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
我之在ouput函数中有加一个计数器,每当打印一对值,计数器加一,若为十,打印换行符,可是没有起到作用,请问是错在哪里了?另外,这段程序不足的地方还请帮忙指出


回头看书,复习一下“局部变量”的相关知识。
你这个程序不足的地方多了,先修正了错误再说吧。

授人以渔,不授人以鱼。
2013-01-29 04:06
易晋
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2013-1-28
收藏
得分:0 
回复 3楼 TonyDeng
嗯,知道自己错在哪儿了,那个计数器每次进入函数的时候都会被置零。Thx~

[ 本帖最后由 易晋 于 2013-1-29 08:05 编辑 ]
2013-01-29 08:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
直到遇到EOF
------ 这是出题者也没明白EOF是什么呀!EOF是读函数的返回值,而非有个东西叫EOF被函数读出来了。

2013-01-29 09:34
易晋
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2013-1-28
收藏
得分:0 
回复 5楼 rjsp
EOF是函数的返回值么?看书上不是说EOF是End of File,是文件结尾,遇到EOF函数会返回-1?
2013-01-29 21:45
快速回复:请教关于C primer puls的一道课后题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015841 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved