scanf的一个问题(暂未解决)
如下代码,没有按照预想的那样运行:
int a;
char b; printf("input a integer\n");
scanf("%d", &a); printf("input a char\n");
//scanf("%1s",&b);
scanf("%c",&b); printf("%d,%c\n",a,b );
运行的结果如下,并没有机会输入char字符,输入int后,回车直接就显示了。
----------------------------------------------------------------------------
原因分析:
输入int数值后,回车,此时连同回车一起进入了缓冲区,而b获取字符变成了回车符。
解决方案:
重点是要忽略到回车。
(1)用函数fflush(stdin)清除全部剩余内容 ==>OK
(2)用"%1s"来限制 ==>OK
(3)用getchar()清除
(4)用格式串中空格或"%*c"来"吃掉"
方法一:
int a;
char b; printf("input a integer\n");
scanf("%d", &a); printf("input a char\n");
fflush(stdin);
scanf("%c",&b); printf("%d,%c\n",a,b );
方法二:
%1s 读长度为1的字符串,因此前面的空格,回车都会过滤掉。
int a;
char b; printf("input a integer\n");
scanf("%d", &a); printf("input a char\n");
scanf("%1s",&b);
printf("%d,%c\n",a,b );
运行结果:
但程序结束报错:
修改如下即可:
将b定义为字符数组(字符串)
int a;
char b[];
printf("input a integer\n");
scanf("%d", &a); printf("input a char\n");
scanf("%1s",&b); printf("%d,%c\n",a,b[]);
方法三、
scanf的一个问题(暂未解决)的更多相关文章
- openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...
- Popwindow自定义动画(nexus5不支持暂未解决)
遇到一个问题,先记录一下 PopWindow自定义动画 import android.app.Activity; import android.graphics.drawable.BitmapDraw ...
- Python中暂未解决的问题
编写一个复杂的计算器,可以在通过GUI输出出来.参考代码http://www.cnblogs.com/BeginMan/p/3216093.html shelve模块中open()函数调用文件文件的路 ...
- 使用MinIO中暂未解决的问题
时间显示问题 web页面上创建桶的时间跟使用SDK获取的时间不一样,相差8个小时,但是mc命令行客户端获取的时间跟web上的一样
- 「HTML+CSS」--自定义加载动画【014】【疑问未解决】
前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...
- 记录未解决的问题:docker中无法启动mysqld
首先在docker中安装mysql server的包: sudo yum install mysql sudo yum install mariadb-server mariadb /usr/libe ...
- Jfrog Artifactory jenkins 流水线使用docker的方式培训[暂未成功]
1. 创建jenkins的流水线 2. 创建artifactory的镜像仓库 3. 创建generic的仓库上传需要的 war包还有tar包. 4. 修改pipeline的 脚本 主要修改的地方. 修 ...
- l2-002 链表去重 (未解决)
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...
随机推荐
- MySQL中查询行数最多的表并且排序
#切换到schema use information_schema; #查询数据量最大的30张表 并排序 select table_name,table_rows from tables order ...
- Spring源码学习资料
未完待续.. github地址 https://github.com/spring-projects 学习地址 https://github.com/code4craft/tiny-spring 推荐 ...
- python(十四)新式类和旧式类
这里有个重要概念呢在下面那个链接 http://blog.csdn.net/zimou5581/article/details/53053775 http://www.cnblogs.com/btch ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
1.centos 检查服务是否开机自启 (ntpd是原生的服务,mysql是注册的服务) 参考:1.http://man.linuxde.net/systemctl
- Linux注销&登陆
⒈注销 ①在命令行使用logout,此指令在图形界面无效.
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...
- 【ARTS】01_09_左耳听风-20190107~20190113
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- python之模块array
>>> import array#定义了一种序列数据结构 >>> help(array) #创建数组,相当于初始化一个数组,如:d={},k=[]等等 array( ...
- Windows域帐户
域的直观优点: 1.域帐户可以在任意一台已经加入域的电脑上登录. 2.将域用户组加入到SQL Server登录里,域用户组内所有人员便都可以使用域用户登录数据库,继承相关权限. 3.域用户登录Team ...