学了这么久的C语言,你真的懂scanf函数么?


点击上方“C语言入门到精通”,选择置顶

第一时间关注程序猿身边的故事


学了这么久的C语言,你真的懂scanf函数么?_JAVA


作者

闫小林

白天搬砖,晚上做梦。我有故事,你有酒么?


很多人可能到现在也不是很明白stdio.h这个头文件有什么作用,初学者看书的时候应该看到过这句话:


C语言本身是不包含输入输出语句的。


printf函数和scanf函数一样,都被声明在头文件stdio.h里。(特殊IDE除外)


如果在开头没有加stdio.h,你如果不用输入输出语句是没有一点问题的,代码为证:


学了这么久的C语言,你真的懂scanf函数么?_JAVA_02


先看下scanf的用法

scanf(格式控制,地址表列)


格式控制和printf函数一样,地址表列是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址


上面是scanf函数的格式,这里着重强调一下地址列表。


小案例:

学了这么久的C语言,你真的懂scanf函数么?_JAVA_03



a是一个整型变量,上面的scanf后半句加了一个&符号,读者要弄清楚&是干什么用的:&是一个取地址运算符,&a表示a变量的地址,这样才符合scanf的用法。


scanf还有一个特点是:


从键盘输入的样式一定要和你在代码中输入的样式一样,如果一样则会出现逻辑性错误。


代码为证:

学了这么久的C语言,你真的懂scanf函数么?_JAVA_04


错误1:输出一个数后换行



学了这么久的C语言,你真的懂scanf函数么?_JAVA_05

错误2:两个数之间有逗号


学了这么久的C语言,你真的懂scanf函数么?_JAVA_06


正确输出


此外还需要注意的一点事:在输入数值数据时,如输入空格、回车、Tab键或遇到非法字符,认为该数据结束。
直白话就是,如果想录入空格,不要用scanf函数,不是录不了,比较复杂,想了解用法的,可以自行百度,gets函数可以直接录入空格
往期文章:点击链接直接get
微信代码大全,推荐收藏!