| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1736 人关注过本帖
标题:为何两份代码的输出结果会有这样的差别?
只看楼主 加入收藏
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:5 
为何两份代码的输出结果会有这样的差别?
程序代码:
#include<stdio.h>
int main(void){
    char ch;
    scanf("%c",&ch);
    while(ch!='g'){
        printf("%c",ch);
        scanf("%c",&ch);
    }
    return 0;
}

这段代码运行后,在控制台输入输出结果如下所示:
Go west,young man
Go west,youn
如果将代码改成下面这样:
程序代码:
#include<stdio.h>
int main(void){
    char ch;
    scanf("%c",&ch);
    while(ch!='g'){
        printf("%c",ch);
    }
    return 0;
}

运行后控制台的输入输出结果变成这样:
Go west,young man
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
不停的打印G
为何两份代码的输出结果会有这样的差别?
搜索更多相关主题的帖子: 代码 输出 结果 scanf printf 
2019-08-03 16:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:1 
两段代码有什么不同你看不出来?
即使没见过C语言的人,从运行结果的不同上,也能猜出缺少的那行是什么功能。
2019-08-03 18:57
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:0 
回复 2楼 rjsp
第一份代码循环体中的scanf("%c",&ch);不是要等待输入一个字符吗?为何运行的时候整个程序只有一个等待输入的操作?为何缺少循环体里那个等待输入的操作?
2019-08-03 20:13
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:1 
谁告诉你它是等待的?
你这半个小时在等待我回复么?
如果有人秒回你还会等半小时么?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-08-03 20:46
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
我的意思是说你的程序发现有人秒回了一个字符小写的o,它干嘛还要等?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-08-03 20:48
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:18 
scanf()函数获取从标准输入设备输入到所指定的内存区域中的数据,
scanf("%c",&ch);格式控制符是%c,要求输入的是字符,当输入回车(Enter),
结束输入,每次从缓存区域获取一个字符,如果缓存区没有字符了,这时候
你就要从键盘输入了。

你可以试一下,键入一个字符,然后输入回车,如果不等于‘g’,程序会
让你接着输入,你是你想要的让你输入一个字符。

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-08-03 21:59
快速回复:为何两份代码的输出结果会有这样的差别?
数据加载中...
 
   



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

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