| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:求助:回车就会显示结果,然后继续输入字符,能不能回车后不显示结果,只有 ...
只看楼主 加入收藏
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:4 
求助:回车就会显示结果,然后继续输入字符,能不能回车后不显示结果,只有在输入#时才显示结果并结束?
求助:回车就会显示结果,然后继续输入字符,能不能回车后不显示结果,只有在输入#时才显示结果并结束?

程序代码:
/*
2.编写一个程序,该程序读取输入直到遇到#字符。使程序打印每个输入的字符以及它的十进制ASCII码。
每行打印8个字符,编码对。建议:利用字符计数和模运算符(%)在每8个循环周期时打印一个换行符。
*/
# include <stdio.h>
int main (void)
{
    char ch;
    int a = 0;
    while ((ch = getchar()) != '#')
    {
        a++;
        if (ch == '\n')    //为了使回车不显示空白,怎么才能让回车不换行???
            printf ("'\\n'->%d    ", ch, ch);
        else
            printf ("'%c'->%3d  ", ch, ch);
        if (a % 8 == 0) printf("\n");
   
    }
    printf("\n");
    return 0;
}

 
搜索更多相关主题的帖子: 换行符 十进制 
2014-12-04 21:17
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>

void printch(char *p, int j);
int main(void) {
    char ch, *ptr_ch=malloc(sizeof(char));
    int i=0, j=0;
    while(1) {
        scanf("%c", &ch);
        if('#'==ch) {
            break;
        }
        j++;
        realloc(ptr_ch, (j+1)*sizeof(char));
        *(ptr_ch+i)=ch;
        i++;
    }
    printch(ptr_ch, j);
    free(ptr_ch);
    printf("\n");
    return 0;
}

void printch(char *ptr_ch, int j) {
    int i;
    for(i=0; i<j; i++) {
        if('\n'==*(ptr_ch+i)) {
            printf("'\\n'->%3d ", *(ptr_ch+i));
        } else {
            printf("'%c'->%3d ", *(ptr_ch+i), *(ptr_ch+i));
        }
        if(0==(i+1)%8) {
            printf("\n");
        }
    }
}


以上代码错误 不好意思 没细想 幸亏三楼版主提示!

[ 本帖最后由 longwu9t 于 2014-12-5 15:44 编辑 ]

Only the Code Tells the Truth             K.I.S.S
2014-12-04 22:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
回复 2 楼 longwu9t
运行效果如何?

授人以渔,不授人以鱼。
2014-12-05 12:38
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
新更正的代码如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>

void printch(int *p, int j);
int main(void) {
    char ch;
    int ptr_ch[1000] = {0};
    int i = 0;

    while(1) {
        scanf("%c", &ch);

        if('#' == ch) {
            break;
        }
        *(ptr_ch + i) = (int)ch;
        i++;
    }

    printch(ptr_ch, i);
    printf("\n");
    return 0;
}

void printch(int *ptr_ch, int j) {
    int i;

    for(i = 0; i < j; i++) {
        if(10 == *(ptr_ch + i)) {
            printf("'\\n'->%-3d ", 10);

        } else {
            printf("'%c'->%-3d ", (char)(*(ptr_ch + i)), *(ptr_ch + i));
        }

        if(0 == (i + 1) % 8) {
            printf("\n");
        }
    }
}

图片附件: 游客没有浏览图片的权限,请 登录注册

Only the Code Tells the Truth             K.I.S.S
2014-12-05 15:44
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
非常感谢,想明白了。再试写一下终于成功了。
程序代码:
#include <stdio.h>

int main(void) {
    char ch;
    char ptr_ch[1000] = {0};
    int i = 0, j;

    while(1)
    {
        scanf("%c", &ch);
        if('#' == ch)
            break;
        ptr_ch[0 + i] = ch;
        i++;
    }

    for (j = 0; j < i; ++j)
    {
        if ('\n' == ptr_ch[j])
            printf("'\\n'->%-3d ", 10);
        else
            printf(" '%c'->%-3d ", ptr_ch[j], ptr_ch[j]);
        if (0 == (j + 1) % 8)
            printf("\n");
    }
    printf("\n");
    return 0;
}
*/





 

人有多懒,编程就有多难。
2014-12-05 20:49
快速回复:求助:回车就会显示结果,然后继续输入字符,能不能回车后不显示结果, ...
数据加载中...
 
   



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

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