c输入的缓冲区
作业题:输入两个整数(12和37),从键盘输入‘A’和‘a’时,输出两个数中的较大数;从键盘输入‘B’和‘b’时,输出两个数中的较小数。
int a;
char c;
scanf("%d",&a);
c = getchar();
我的想法是从键盘输入一个int 赋值给a,然后输入一个char 赋值给c。但是在执行c = getchar()时不用键盘输入,直接执行后续代码。
查阅后发现是getchar()采用了缓冲区,而getch()才是立即获取,所以要想再用getchar()获取正确的值必须先清空缓冲区,如果是windows操作系统,用fflush(stdin)函数或rewind(stdin)函数,包含在stdio.h头文件中,而在linux下,则使用setbuf(stdin,NULL)或者while((c=getchar()) != '\n' && c != EOF);函数,同样是stdio.h头文件中。
int a;
char c;
scanf("%d",&a);
while((c=getchar()) != '\n' && c != EOF);
c = getchar();
修改后得到了理想的结果。
c输入的缓冲区的更多相关文章
- 关于C语言的输入-scanf、gets、getchar、getch、getline
找工作刷题,重拾C语言,发现对键盘输入掌握很生疏,现总结各类输入函数使用方法和注意事项如下. 1.scanf("格式说明",变量地址列表) scanf("%s" ...
- iostream/fstream中的输入输出流指针的绑定,tie函数的使用。
为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied ...
- 使用BIOS进行键盘输入和磁盘读写
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 缓冲区(buffer)与缓存(cache)
下面介绍缓冲区的知识. 一.什么是缓冲区 缓冲区(buffer),它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区, ...
- 关于getchar函数缓冲区的问题
最近,看到有同学问我关于getchar()这个函数缓冲区的问题,结合我以前的学习,我将对getchar()进行一次总结,当然,这些都是别人已经提过的东西,我只是总结,接下来我们来看看. 首先,用get ...
- 如何处理Android中的防缓冲区溢出技术
[51CTO专稿]本文将具体介绍Android中的防缓冲区溢出技术的来龙去脉. 1.什么是ASLR? ASLR(Address space layout randomization)是一种针对缓冲区溢 ...
- 从hs_strcpy谈安全——缓冲区溢出
对于大多数的博友来说,hs_strcpy一定会很陌生,因为这个hs_strcpy这个关键字和我的工作有挂钩.本来目前就职于恒生电子,hs_strcpy是中间件中公司定义的字符串拷贝方法,在工作业余之余 ...
- scanf函数读取缓冲区数据的问题
标准I\O的缓冲类型 标准I\O根据不同的应用需求,提供了全缓冲.行缓冲.无缓冲三种缓冲方式. 全缓冲:只有当划定的缓冲区被填满或者数据读取至末尾时,才开始执行I\O操作(执行系统提供的read\wr ...
- C Primer Plus学习笔记(七)- 字符输入/输出和输入验证
单字符 I/O:getchar() 和 putchar() getchar() 和 putchar() 每次只处理一个字符 getchar() 和 putchar() 都不是真正的函数,它们被定义为供 ...
- PIE SDK缓冲区分析算法
1.算法功能简介 缓冲区分析是指有点.线.面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到的所需的结果.他是用来解决邻近度问题的控件分析工具 ...
随机推荐
- MySQL的MDL锁
MDL锁的概念和分类 1.MDL类型 锁名称 锁类型 说明 适用语句 MDL_INTENTION_EXCLUSIVE 共享锁 意向锁,锁住一个范围 任何语句都会获取MDL意向锁, 然后再获取更强级别的 ...
- kibana启动及导出PDF报错
kibana启动及导出PDF报错,可能是由于kibana需要的系统依赖没有安装 CentOS/RHEL系统需要安装以下依赖: ipa-gothic-fonts xorg-x11-fonts-100dp ...
- mac_office2019
mac_office2019下载 1,链接地址: mac_office2019: https://590m.com/d/28636472-44062040-dc385f (访问密码:7410) 2, ...
- Vue3.0 编译做了哪些优化
a. 生成 Block tree Vue.js 2.x 的数据更新并触发重新渲染的粒度是组件级的,单个组件内部 需要遍历该组 件的整个 vnode 树.在 2.0 里,渲染效率的快慢与组件大小成正相关 ...
- c语言中位运算符及用法 异或
a&b: 00000000 00000000 a&b=0x0 a|b : 00000000 01011111 a|b=0x5f a^b : 00000000 01011111 ...
- HCIA-ICT实战基础12-网络设备安全特性
HCIA-ICT实战基础-网络设备安全特性 目录 常见设备安全加固策略 网络设备安全加固部署示例 本机防攻击配置 1 常见设备安全加固策略 1.1 为什么需要网络设备安全 网络安全是一个系统工程, 网 ...
- Android 系统完整的权限列表
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.perm ...
- iOS 高级面试题
面试题 iOS 基础题 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员? 讲一下atomic的实现机制:为什么不能保证绝对的线程安全(最好可以结合场景来说)? ...
- zk中控考勤机默认密码登陆
网络空间搜索: app="ZKTECO-考勤管理系统" 找到某一个考勤系统 进行弱口令登陆:admin/****** 成功! End!!!
- iOS 制作本地库Development Pods
1.cd到指定的路径文件夹下 ,创建本地库,如:pod lib create XXNetworking 2.删除Classes文件下的ReplaceMe文件,添加自己的类. 3.修改XXNetwork ...