| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1703 人关注过本帖
标题:C语言求助
只看楼主 加入收藏
Pile_
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:92
注 册:2018-9-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
C语言求助
请问一下,为什么程序输出的最后会出现一个   “-10”?

程序代码:
//读取输入,读到“#”字符停止,程序打印每个输入的字符以及对应的ASCII码,每行打印8个“字符-ASCII码”组合。

#include <stdio.h>
int main(void)
{
    char ch;
    int j = 0;

    while ((ch = getchar()) != '#')
    {
        printf("%c-%d  ", ch, ch);
        j++;
        if (j % 8 == 0)
            printf("\n");
    }

    return 0;
}

/*
vs2017下的输出如下

abcdefghijk
a-97  b-98  c-99  d-100  e-101  f-102  g-103  h-104
i-105  j-106  k-107
-10     

*/
搜索更多相关主题的帖子: C语言 字符 打印 int printf 
2018-10-13 10:11
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    char ch;
    int j = 0;

    while ((ch = getch()) != '#')
    {
        printf("%c-%d  ", ch, ch);
        j++;
        if (j % 8 == 0)
            printf("\n");
    }

    return 0;
}

getch是讀字元
2018-10-13 11:18
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:20 
末尾实际输出的不是 -10 而是 '\n'-10 '\n'的ASCII码值为10。将while条件修改下就不会出现 '\n'-10 了,具体见下面代码。
修改后无法循环输入,需要循环的话再套一层循环即可,在此不多赘述了。
说一下产生'\n'-10 的原因:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).

程序代码:
//读取输入,读到“#”字符停止,程序打印每个输入的字符以及对应的ASCII码,每行打印8个“字符-ASCII码”组合。

#include <stdio.h>
int main(void)
{
    char ch;
    int j = 0;

    while ((ch = getchar()) != '\n')
    {
        printf("%c-%d  ", ch, ch);
        j++;
         if (j % 8 == 0)
             printf("\n");
    }

    // printf("%c-%d  ", '\n', '\n');   // 将注释去掉看看结果
    return 0;
}

/*
vs2017下的输出如下

abcdefghijk
a-97  b-98  c-99  d-100  e-101  f-102  g-103  h-104
i-105  j-106  k-107
-10     

*/


[此贴子已经被作者于2018-10-13 14:04编辑过]


126邮箱联系方式:no1xijin@126. com
2018-10-13 14:02
Pile_
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:92
注 册:2018-9-19
收藏
得分:0 
回复 3楼 no1xijin
谢谢,问题已解决。
2018-10-14 10:16
快速回复:C语言求助
数据加载中...
 
   



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

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