| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13666 人关注过本帖
标题:新手求教 从键盘输入几个字符(字符数不限),输出字符本身和它对应的ASCII ...
只看楼主 加入收藏
小猪来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-2-16
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
新手求教 从键盘输入几个字符(字符数不限),输出字符本身和它对应的ASCII码值
[local]1[/local]#includevoid main(){    int a;    printf("enter some chars:\n");    while(a!=0)    {    a=getchar();    printf("%c=%d\n",a,a);        }        }
运行后可以实现基本功能但是会出现=10这一项 而且不会显示按任任意键退出  求解释

U@DZJ9RGK8K8NGK06KL_SV5.jpg (12.28 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 键盘 而且 
2012-03-07 15:30
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
程序代码:
#include<stdio.h>
void main()
{    int a; 
     printf("enter some chars:\n"); 
     while(a!=0)  
     {   
         a=getchar();  
         printf("%c=%d\n",a,a); 
         getchar(); // 再加一个 每输入一个字符回车一次
     }      

 }
但是不知道你的循环怎么退出来 输入什么才退出呢?

[ 本帖最后由 有容就大 于 2012-3-7 15:53 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-03-07 15:51
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:2 
最好这么写:
程序代码:
#include<stdio.h>
void main()
{    int a; 
     printf("enter some chars:\n"); 
     while((a=getchar()) != 10)        
         printf("%c=%d\n",a,a);                    
}

 

梅尚程荀
马谭杨奚







                                                       
2012-03-07 15:55
Elvis_yan
Rank: 2
等 级:论坛游民
帖 子:8
专家分:31
注 册:2012-3-7
收藏
得分:1 
(1)#include<stdio.h>

void main()
{
    int ch = 0;
    printf("Enter some chars :\n");
    while((ch = getchar())!= EOF)    /*window下按 ctrl + d,linux 下按 ctrl +c 退出*/
    {
        printf("%c = %d \n",(char)ch,ch);
        while(getchar()!='\n')       /*除去多余输入*/
            continue;
    }
    return 0;
}


(2)
#include<stdio.h>

void main()
{
    int ch = 0;
    printf("Enter some chars :\n");
    while((scanf("%d",&ch)) == 1)
         printf("%c = %d \n",(char)ch,ch);
    return 0;
}
2012-03-07 16:22
davidlv419
Rank: 2
等 级:论坛游民
帖 子:24
专家分:69
注 册:2009-4-30
收藏
得分:1 
回复 楼主 小猪来了
void main(){
        int a;
        printf("enter some chars:\n");
        while(a!=0){               
                a=getchar();
                printf("%c=%d\n",a,a);
        }
}

回车是一个不可见字符,ASCKII数值为 10
程序运行后
输入“adfgc" + 回车
输出为:
a=97
d=100
f_102
g=103
c=99
回车
=10



[ 本帖最后由 davidlv419 于 2012-3-7 16:33 编辑 ]
2012-03-07 16:28
Elvis_yan
Rank: 2
等 级:论坛游民
帖 子:8
专家分:31
注 册:2012-3-7
收藏
得分:1 
回复小猪来了

楼主的程序存在以下两个问题
1.变量a未进行初始化(虽然楼主编译器默认初始化为0)
2.使用a = getchar()未进行收尾工作,getchar()将'\n'一起读入变量a中,导致错误输出10
  建议使用while((scanf("%c",&ch)) == 1)替换,按回车退出程序

建议版本如下:
#include<stdio.h>

void main()
{
    char ch = ' ';
    printf("Enter some chars :\n");
    while((scanf("%c",&ch)) == 1)
         printf("%c = %d \n",ch,(int)ch);
    return 0;
}
2012-03-07 16:47
孙娜娜
Rank: 2
等 级:论坛游民
帖 子:49
专家分:22
注 册:2012-3-5
收藏
得分:1 
回复 6楼 Elvis_yan
运行了一下,还是最后出现 =10,什么个情况
2012-03-08 19:00
小猪来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-2-16
收藏
得分:0 
回复 3楼 有容就大
这样确实可以解决问题。不过问一下为什么要变成 while((a=getchar()) != 10)  这个呢 还有就是为什么把a=getchar放到while里面呢

[ 本帖最后由 小猪来了 于 2012-3-8 22:35 编辑 ]
2012-03-08 22:32
小猪来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-2-16
收藏
得分:0 
回复 4楼 Elvis_yan
(1)中的好像只可以输入一个字符 多个字符就不行了,而且还是会出现=10的情况 还有就是有些地方没看懂 (2)好像不对吧 我运行不出来呢 我用的是VC6.0
2012-03-08 22:39
小猪来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-2-16
收藏
得分:0 
回复 5楼 davidlv419
回车不是CR 它对应的ASCII是13 应该不是这样解释的吧
2012-03-08 22:45
快速回复:新手求教 从键盘输入几个字符(字符数不限),输出字符本身和它对应的 ...
数据加载中...
 
   



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

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