博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C语言解惑》—— 2.4 空格让scanf莫名其妙
阅读量:5768 次
发布时间:2019-06-18

本文共 595 字,大约阅读时间需要 1 分钟。

本节书摘来自华章出版社《C语言解惑》一 书中的第2章,第2.4节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 空格让scanf莫名其妙

【例2.6】程序中的scanf函数含有空格,是否能通过编译?请分析运行结果。

#include
void main( ) { int x,y,z; scanf ( "%d%d%d ", &x, &y, &z ); printf ( "%d, %d,%d\n", x, y, z ); }

【分析】在最后一个“%d”和“"”之间留有空格的语句

scanf ( "%d%d%d ", &x, &y, &z );
与没有留空格的语句
scanf ("%d%d%d", &x, &y, &z );
的功能是不一样的。前者在“%d”后面有空格,虽然能通过编译,但运行时的结果不一样。至于是留一个还是多个空格,结果却是一样的。含有空格的程序,在输入三个数据并按回车后,程序丝毫没有反应。再输入一个数据,才能继续运行并输出前三个数据。例如输入数据“1 2 3 4”,则输出“1,2,3”。语句
scanf ( " %d %d %d", &x, &y, &z );
是在格式说明符中间和前面有空格,这种情况能得到正确结果。由此可见,最后一个%d与双引号之间不能有空格。

转载地址:http://jfdux.baihongyu.com/

你可能感兴趣的文章
实时编辑
查看>>
KVO原理分析及使用进阶
查看>>
【348天】每日项目总结系列086(2018.01.19)
查看>>
【JS基础】初谈JS现有的数据类型
查看>>
【294天】我爱刷题系列053(2017.11.26)
查看>>
Microsoft发布了Azure Bot Service和LUIS的GA版
查看>>
Google发布Puppeteer 1.0
查看>>
.NET开源现状
查看>>
可替换元素和非可替换元素
查看>>
2016/08/25 The Secret Assumption of Agile
查看>>
(Portal 开发读书笔记)Portlet间交互-PortletSession
查看>>
搭建vsftpd服务器,使用匿名账户登入
查看>>
AMD改善Linux驱动,支持动态电源管理
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
Java虚拟机管理的内存运行时数据区域解释
查看>>
人人都会深度学习之Tensorflow基础快速入门
查看>>
ChPlayer播放器的使用
查看>>
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
Oracle 备份与恢复学习笔记(5_1)
查看>>