| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2509 人关注过本帖
标题:scanf("%c",&a);printf("%c\n",a);scanf("%c",&am ...
只看楼主 加入收藏
天使编手
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-10-2
结帖率:0
收藏
 问题点数:0 回复次数:11 
scanf("%c",&a);printf("%c\n",a);scanf("%c",&am
//为什么不能运行完??
#include<stdio.h>
void main()
{
    char a;
    char b;
    scanf("%c",&a);
    printf("%c\n",a);
    scanf("%c",&b);
    printf("%c\n",b);
}
搜索更多相关主题的帖子: scanf printf 
2010-03-07 21:59
邮贼
Rank: 2
等 级:论坛游民
帖 子:17
专家分:36
注 册:2010-3-5
收藏
得分:0 
改成这样就好了
#include<stdio.h>
void main()
{
    char a;
    char b;

    scanf("%c",&a);
    printf("%c\n",a);
    getchar();//主要是因为之前的scanf读入的是字符和空格,所以需要用getchar()将空格吃掉!
    scanf("%c",&b);
    printf("%c\n",b);
}
懂了吗?
2010-03-07 22:08
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:0 
嗯,LS正解。

另外你也可以这样写,把多余的数据全部卡掉。

程序代码:
# include <stdio.h>

int main(void)
{
    char a;
    char b;
   
    scanf("%c",&a);
    printf("%c\n",a);
   
    // 清除空格及往后的数据,一直到换行
    char ch;
    while ((ch = getchar()) !='\n')
        continue;

    scanf("%c",&b);
    printf("%c\n",b);

    return 0;
}


[ 本帖最后由 lixnkei 于 2010-3-7 23:26 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-07 23:25
天使编手
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-10-2
收藏
得分:0 
楼上各位,受小弟一膜拜吧。
2010-03-08 22:14
天使编手
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-10-2
收藏
得分:0 
回复 2楼 邮贼
为什么scanf会将读入空格呢?
#include<stdio.h>
void main()
{
    int a;
    int b;
    scanf("%d",&a);
    printf("%d\n",a);
      scanf("%d",&b);
    printf("%d\n",b);
}
是不是单只有scanf("%c",&a);即a为char是才有scanf读入空格?
2010-03-08 22:26
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
以下是引用lixnkei在2010-3-7 23:25:10的发言:

嗯,LS正解。

另外你也可以这样写,把多余的数据全部卡掉。

# include <stdio.h>
 
int main(void)
{
    char a;
    char b;
   
    scanf("%c",&a);
    printf("%c\n",a);
   
    // 清除空格及往后 ...
为什么还要用一个ch呢?多此一举把

胖胖的我~
2010-03-08 22:39
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
while (getchar() !='\n')
        continue;


或者更简单些

while (getchar() != '\n');



[ 本帖最后由 CodeWays 于 2010-3-8 22:43 编辑 ]

胖胖的我~
2010-03-08 22:39
djwshh
Rank: 2
等 级:论坛游民
帖 子:10
专家分:21
注 册:2010-1-19
收藏
得分:0 
LS的方法不错
2010-03-08 23:45
zxbiancheng
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2010-3-8
收藏
得分:0 
//如果这样行么
#include<stdio.h>
int main(void)
{
    char a;
    scanf("%c",&a);
    printf("%c\n",a);
    getchar();
    getchar();
    char b;
    scanf("%c",&b);
    printf("%c\n",b);
}


[ 本帖最后由 zxbiancheng 于 2010-3-10 17:00 编辑 ]
2010-03-10 16:43
zb527129
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-11
收藏
得分:0 
不改程序,直接连续输入两个字符,例如:ab,而不是“a b”

在字符输入时,空格符属于字符,故输入a b,程序截取前面两个~~~
2010-03-11 15:13
快速回复:scanf("%c",&a);printf("%c\n",a);scanf("%c",&am ...
数据加载中...
 
   



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

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