C语言的标准IO
即标准的输入输出
标准的输入:键盘
标准的输出:屏幕(控制台)
scanf和printf是格式化的输入和输出
格式化:根据用户指定的格式化字符进行输入输出
格式化字符的应用实践
printf是可变参,参数个数是可以变的。
printf的第一个参数永远是是字符串,这个字符串包含自己写的描述内容,和格式化字符。
第一个参数:格式化字符串里包含了多少个格式化字符,后面就添加多少个参数。
%d是有符号的整数的输出
%u是无符号的整数的输出
在输出的时候,我们尽量是根据变量的类型,使用对应的输出格式化字符
否则:
所以我们选的是unsigned对应的%u
总结如下:
%d,%u打印的都是十进制
%x和%X打印的是十六进制
%x%X在日期的操作应用:
以后看到下面这个提示,就是代表传入的是格式化字符串
x显示年月日,X显示时分秒
%md: 这个表示输出的宽度问题。
现在相当于整数在输出的时候占用了20个字符的宽度。
是靠右输出的
如果我们要让它靠左输出:
%0md:
我们现在希望这些日期显示的都是对齐的:
我们现在希望这些日期显示的都是对齐的,10-1显示的10-01
显示的宽度是2个,如果打印出来的数字连2个宽度都凑不够的话,空白的地方就填上0:
我们再来看:
打印字符:%c
打印字符串:%s
空格是10
\0是结束,所以什么也没有显示
我们继续看:
输出的是指针p指向的字符串的内容
如果我们要打印的是指针p存的这个字符串的地址(.rodata段)
只要是打印地址,都可以用%p
小数点后面总是凑够6位,不够的补上0。
如果我们只要打印小数点后2位
还四舍五入了。
如果我们规定了显示的宽度
显示10个宽度,小数点后只有1位
默认是靠右显示
如果要靠左显示,就加上负号