2023.07.23
printf函数
C语言本身不提供输入输出语句。C语言函数库中有一批标准的输入输出函数,比如putchar(输出字符),getchar(输入字符),printf(格式输出),scanf(格式输入)等等。
如果程序要调用标准输入输出函数,就必须要在程序的开头用预处理指令#include把有关头文件放在本程序中。printf与scanf函数都是使用#include<stdio.h>。
一般格式 printf(格式控制,输出列表)
占位符
上面程序中,“There are %d people in my family.”是输出文本,而里面的%d就是占位符,表示这个位置要用其他值来替代。
%d 输出一个有符号的十进制整数
%s 输出一个字符串
%c 输出一个字符
%f 输出单精度小数,小数点后面输出六位
%lf 输出双精度小数,小数点后面输出六位
%e 以指数形式输出实数 (e+002=10^2)
等等......
除了%c以外,其他的占位符都会自动忽略起首的空白字符。%c不会忽略每个字符,无论该字符是否为空格。
另外,可以在格式声明中指定输出数据的域宽(所占的列数)
%5d 表示指定输出数据占五列,按向右对齐原则输出。
%13.7f 表示指定输出数据占13列,其中小数点后面有7位,按向右对齐原则输出。
另外,默认情况下,printf()不对正数显示+号,只对负数显示-号,如果想让正数输出+号,就在占位符的%后面加一个+号。
而在%s中情况又有一点点不一样了,%.[m]s表示指定输出字符串的长度。
%.5s表示只输出一个字符串的前五个字符。
scanf函数
一般格式 scanf(格式控制,地址列表)
注意事项:
①scanf函数中的格式控制后面是变量地址,而不是变量名。要写成&a而不是a。
②如果在格式控制字符串中还有其他字符,则在输入数据的时候也要在对应位置上输入相同的字符,否则会报错。
scanf的返回值
scanf的返回值是一个整数,表示成功读取的变量个数。
如果没有读取到任何项,则返回0。
输入三个数分给a,b,f,成功读取三个变量,返回值为3。
输入一个数字,只分给了a,成功读取一个变量,返回值为1。
一个数字都不输入,直接提前结束输入,一个变量都没有读取,返回值为-1。
赋值忽略符
如果用户输入的格式与预定的格式不符,可能会出现解析数据失败的问题。为了避免这种情况的发生,scanf()提供了一个赋值忽略符只要把*加在任何占位符的%后面,该占位符就不会返回值,解析后将被丢弃。
不管用户以何种形式输入日期,只要大体合乎模式,都能提取到准确日期。
明天的事明天再说,今天的我超越昨日的我。