| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2311 人关注过本帖
标题:为什么要放两个getchar ( );语句才能让光标暂时停止?
只看楼主 加入收藏
yehuabao
Rank: 2
等 级:论坛游民
帖 子:45
专家分:87
注 册:2017-8-3
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
为什么要放两个getchar ( );语句才能让光标暂时停止?
代码如下:

程序代码:
# include <stdio.h>
int main (void)
{
    int n,n1,n2,n3;
    printf ("请输入一个数字,我们会给出它的四次方数。\n");
    scanf ("%d",&n);
    n1 = 0;
    n1 = n;
    n2 = n1*n1;
    n3 = n2*n2;
    printf ("%d的四次方数是%d\n",n,n3);
    getchar ();
    getchar ();
    return 0;
}
搜索更多相关主题的帖子: getchar 语句 光标 停止 printf 
2017-08-07 07:07
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:4 
这两个getchar()改为这样看看:
    n = getchar ();
    printf ("%d\n",n);
    getchar ();
2017-08-07 08:23
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
收藏
得分:6 
第一个getchar()获取的是上一次输入的数据时留在缓冲区内的回车符,如果在用完scanf()后利用fflush(stdin)清空缓冲区,这样一个getchar()就可以了。总的来说是因为在cmd输入数据:1时,在缓冲区其实有两个字符即1和回车符
2017-08-07 10:06
yehuabao
Rank: 2
等 级:论坛游民
帖 子:45
专家分:87
注 册:2017-8-3
收藏
得分:0 
以下是引用吹水佬在2017-8-7 08:23:32的发言:

这两个getchar()改为这样看看:
    n = getchar ();
    printf ("%d\n",n);
    getchar ();

n = getchar ();  这一个语句起到什么作用?为什么还要把n打印出来?
2017-08-07 11:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
其实要习惯在cmd模式下运行测试  而没必要加什么getchar 神马system("pause") 等等

DO IT YOURSELF !
2017-08-07 14:32
wy2088511
Rank: 2
等 级:论坛游民
威 望:1
帖 子:12
专家分:53
注 册:2009-11-19
收藏
得分:0 
http://blog.这里回答的比较清楚
2017-08-10 14:51
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
scanf输入在输入流中留下了一个回车符,被第一个getchar读走了,所以就没有停留。

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2017-08-19 22:13
快速回复:为什么要放两个getchar ( );语句才能让光标暂时停止?
数据加载中...
 
   



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

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