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


很多人可能到现在也不是很明白stdio.h这个头文件有什么作用 , 初学者看书的时候应该看到过这句话:
C语言本身是不包含输入输出语句的 。
printf 函数和scanf 函数一样 , 都被声明在头文件stdio.h里 。 (特殊IDE除外)
如果在开头没有加stdio.h , 你如果不用输入输出语句是没有一点问题的 , 代码为证:
「C语言」学了这么久的C语言,你真的懂scanf函数么?
本文插图
先看下scanf的用法:
scanf(格式控制 , 地址表列)
格式控制和printf函数一样 , 地址表列是由若干个地址组成的表列 , 可以是变量的地址 , 或字符串的首地址
上面是scanf函数的格式 , 这里着重强调一下地址列表 。
小案例:
「C语言」学了这么久的C语言,你真的懂scanf函数么?
本文插图
a是一个整型变量 , 上面的scanf后半句加了一个&符号 , 读者要弄清楚&是干什么用的:&是一个取地址运算符 , &a表示a变量的地址 , 这样才符合scanf的用法 。
scanf还有一个特点是:
从键盘输入的样式一定要和你在代码中输入的样式一样 , 如果一样则会出现逻辑性错误 。
代码为证:
错误1:输出一个数后换行 ?
【「C语言」学了这么久的C语言,你真的懂scanf函数么?】
「C语言」学了这么久的C语言,你真的懂scanf函数么?
本文插图
错误2:两个数之间有逗号 ?
「C语言」学了这么久的C语言,你真的懂scanf函数么?
本文插图
正确输出 ?
「C语言」学了这么久的C语言,你真的懂scanf函数么?
本文插图
此外还需要注意的一点事:在输入数值数据时 , 如输入空格、回车、Tab键或遇到非法字符 , 认为该数据结束 。
直白话就是 , 如果想录入空格 , 不要用scanf函数 , 不是录不了 , 比较复杂 , 想了解用法的 , 可以自行百度 , gets函数可以直接录入空格 。
对于热爱编程的人来说 , 有一群一起学习的小伙伴很重要!如果你感兴趣或者有需求的话 , 笔者有一个编程零基础入门学习交流俱乐部 , 私信我【编程学习】获取!还有学习视频文件 , 欢迎初学者和正在进阶中的小伙伴们!