scanf是带缓冲的函数,……

来源:互联网 发布:Java 过滤器不过滤 编辑:程序博客网 时间:2024/06/08 14:07
#include<stdio.h>
void main()
{
    chara,b;
   printf("please input a=");
   scanf("%c",&a);
   //printf("%d",a);
   printf("please input b=");
   scanf("%c",&b);

   printf("\na=%d",a);
   printf("\nb=%d\n",b);
   //printf("hello");
}

scanf是带缓冲的函数,……



scanf是带缓冲的函数,当缓冲区中有数据的时候直接取就是了;所以 你在输入数字的时候,后面输入的回车就直接保存到变量b了所以b的值实际上是 '\n' (回车符)解决办法:
 1,在 scanf("%c",&a)后面加个 fflush(stdin) //清除缓冲区函数
2,加个while((a==getchar()) !='\n'); //这是效率很高的清除缓冲区中回车符及之前字符的方法
附:getchar()也是带缓冲区的函数

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卸载完cad黑屏了怎么办 玉坠缝隙里脏了怎么办 购房公摊面积大怎么办 贴皮家具起皮怎么办 酱牛肉有点酸了怎么办 疯马皮沾油变黑怎么办 疯马皮沾上油渍怎么办 防盗窗下雨很吵怎么办 水烧开有漂浮物怎么办 文本中的圈1数字怎么办 父母不给买手机怎么办 工作邮件发错了怎么办 有孩子了想离婚怎么办 老婆要给我离婚怎么办 悉尼大学挂科了怎么办 高三不想学了怎么办 谷歌地图不能用怎么办 跟团去韩国旅游签证怎么办 走丢了怎么办安全教案 被美国拒签了怎么办 房子被卫星照到怎么办 廊曼机场落地签怎么办 网面运动鞋破了怎么办 手机的gps信号弱怎么办 小米4导航信号弱怎么办 欧文3洗不出来了怎么办 白色鞋 网面黄了怎么办 酷狗下载歌花钱怎么办 煲中药放多了水怎么办? 熬药水放多了怎么办 煎好的中药太多怎么办 买的户口被注销怎么办 医保卡芯片坏了怎么办 在isa买到假货怎么办 买了土耳其邪眼怎么办 欧洲卡车模拟2卡怎么办 想出国旅游不会英语怎么办 星露谷物语生日怎么办 电脑玩游戏闪退怎么办 win10玩游戏闪退怎么办 黑手党3太卡了怎么办