关于scanf的几种处理方法
来源:互联网 发布:seo推广服务公司 编辑:程序博客网 时间:2024/05/03 16:37
字符输入中,赋值顺序和缓存的联系
scanf是从标准输入缓冲区中读取输入的数据,如果连续输入两个%c格式的字符,而中间又要涉及回车,那么第二个字符将被赋予回车。
解决办法:
1、清空输入缓冲区
第一个scanf后加入语句:fflush(stdin); //C语言清空输入缓冲区函数
2、格式控制中加入空格
将第二个scanf改为:scanf(" %c",&ch2);//在%号前面加一个空格
scanf格式输入时要求输入格式与格式控制符中的完全一样(如:scanf("abcd%c",&ch);输入时必须输入abcde,ch得到的值为e)空格可以抵消前面输入的回车符。
3、直接用ch=getche()吸收回车
4、当输入完整数或字符时,后面还需要输入字符时,为了避免输入的字符变成回车符,可以在输入字符前多加一条scanf语句来吃掉前面的回车符。此时用来吃掉回车符的scanf输入可以用%c方式,也可以用%d方式。当用%c方式来吃掉回车符时,回车符被读进了char类型变量中,当用%d方式来吃掉回车符时,回车符并没有被送进int类型变量中,而是在异常的字符输入后,被自动清除了。
3 0
- 关于scanf的几种处理方法
- scanf()中清除输入缓冲区的几种方法归纳
- OpenGL关于阴影的几种处理方法
- JAVA关于获得当前时间的几种处理方法
- 关于使用VS时出现scanf有错误要改用scanf_s的处理方法
- Android关于图片处理及Bitmap处理的几种方法
- scanf的几种基本用法
- 关于运行web程序的几点错误处理方法
- 字符串的几种处理方法
- 图片模糊处理的几种方法
- 文件夹打不开的几种处理方法
- 图像处理的几种方法
- 关于scanf对输入非法字符的检查和处理
- 关于唱歌呼吸的几种方法
- 关于页码的几种设置方法
- 关于查找Assembly的几种方法
- 关于TIdTCPClient的几种方法
- 关于Swap的几种方法
- uboot之start.S分析2
- 选择排序、锦标赛排序、堆排序)
- mini2440裸机试炼之——DMA直接存取 实现Uart(串口)通信
- delphi中exit,abort,break,continue,halt,runerro 的区别
- Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南
- 关于scanf的几种处理方法
- UIButton改变字的颜色
- C++模板特化的概念
- 打算洒洒大撒撒撒旦撒旦撒阿斯达
- 【SPOJ】Can you answer these queries I【线段树】
- aopalliance解析(二) Joinpoint
- Java多线程面试题归纳
- C++ primer(第五版) 练习 3.23 个人code
- POJ1035