| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5576 人关注过本帖
标题:getchar();无法使程序暂停
只看楼主 加入收藏
PengjuYang
Rank: 1
来 自:河南-郑州
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-7-27
收藏
 问题点数:0 回复次数:11 
getchar();无法使程序暂停
代码如下:

double x,s;                        /*声明变量x,s是双精确浮点型。*/
printf("input number:\n");         /*自己输入变量x*/
scanf("%lf",&x);                   /*接受键盘输入的数字,存入变量x*/
s=sin(x);                          /*调用sin函数计算结果并送到变量s*/
printf("sine of %lf is %lf\n",x,s);/*输出结果*/         
getchar();                         /*暂停程序*/

错误描述:
程序一闪而过,并未暂停。

查资料明白是输入缓冲区有数据,getchar()成功读取的数据,所以跳出。但是加上fflush(stdin)之后还是一闪而过。请问这是为什么,怎么解决?
搜索更多相关主题的帖子: 数据 number 缓冲区 资料 
2012-07-27 18:51
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
system("pause");试试这个
2012-07-27 19:36
小无相
Rank: 2
等 级:论坛游民
帖 子:35
专家分:39
注 册:2012-7-24
收藏
得分:0 
double x,s;                        /*声明变量x,s是双精确浮点型。*/
printf("input number:\n");         /*自己输入变量x*/
scanf("%lf",&x);                   /*接受键盘输入的数字,存入变量x*/
s=sin(x);                          /*调用sin函数计算结果并送到变量s*/
printf("sine of %lf is %lf\n",x,s);/*输出结果*/
fflush(stdin);
getchar();                         /*暂停程序*/
这个好使,
fflush(stdin)
  功能:清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)。   注意:此函数仅适用于部分编译器(如VC6),但是并非所有编译器都要支持这个功能(如gcc3.2)。这是一个对C标准的扩充。[1]
不知道是不是你的编译器的事情
2012-07-27 19:38
PengjuYang
Rank: 1
来 自:河南-郑州
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-7-27
收藏
得分:0 
我用的DEV-C++,我换个再试试吧。
2012-07-27 19:47
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
誰讓妳用getchar();了,用getch();試試。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-27 20:10
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:0 
楼上大牛说的对
getch直接从键盘获取输入
getchar从缓冲区获取输入
所以暂停程序的话,getch要好一些
system("pause");这个也不错的

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-27 20:42
PengjuYang
Rank: 1
来 自:河南-郑州
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-7-27
收藏
得分:0 
getch()也不行,换VC试getchar()就能通过,不知道是不是DEV-C++的问题。
2012-07-27 21:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
getch()不是标准C库函数,与具体环境有关的。

授人以渔,不授人以鱼。
2012-07-27 22:02
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:0 
楼上
2012-07-27 22:10
w995612220
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:139
专家分:313
注 册:2012-6-20
收藏
得分:0 
#include<stdio.h>
#include <math.h>

void main ()
{
  double x,s;                        /*声明变量x,s是双精确浮点型。*/
printf("input number:\n");         /*自己输入变量x*/
scanf("%lf",&x);                   /*接受键盘输入的数字,存入变量x*/
s=sin(x);                          /*调用sin函数计算结果并送到变量s*/
printf("sine of %lf is %lf\n",x,s);/*输出结果*/         
}//怎么会死循环呢??我感觉奇怪了。。
2012-07-27 23:58
快速回复:getchar();无法使程序暂停
数据加载中...
 
   



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

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