首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

实现循环使用一个功能,该如何解决

2012-02-12 
实现循环使用一个功能while(flag){printf( inputahex: )gets(a)printf( deceminalis%lf:\n ,tran(a)

实现循环使用一个功能
while(flag)
{
printf( "input   a   hex: ");
gets(a);
printf( "deceminal   is   %lf:\n ",tran(a));
printf( "countine   or   not(Y/N): ");
getchar();//加这句能改善,但只有输入‘   n’时才能退。
c=getchar();//getchar()返回int型,所以c为int型
if(c== 'n '||c== 'N ')
flag=0;
}

这是输入16进制转10进制的一部分,我想通过这个来再次使用该功能,而不用重新执行程序,但是getchar();这句有点讲不通。但是没有它时,会在printf( "countine   or   not(Y/N): ");时一直执行到上面的printf( "input   a   hex: ");而不等待输入Y   OR   N。这是怎么回事?我在其他程序中使用类似的循环功能时,也会这样。
有人说是没清理内存,加一句(fflush(stdin))语句就好了。我试过确实是好了,但是不明白。

[解决办法]
网上看看输入输出缓冲的资料
[解决办法]
没有清空输入缓冲区的缘故的,这和你使用的getchar函数有关系的
[解决办法]
fflush(stdin)),将所有从键盘输入的字符(包括回车)都会清空。

热点排行