库函数:
为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用,这些函数组成了一个函数库,被称为标准库,在这个基础上一些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)
一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件
printf函数
是一个标准输出函数,是一个库函数,它可以按照用户指定的格式将内容输出到屏幕上,在使用printf函数之前,需要包含头文件
它的原型
int printf(const char * format,...)
其中,format是一个格式化字符串,用于指定输出的格式,后面的参数是要输出的数据,printf函数会根据格式化字符串中的格式指示符,将后面的参数按照指定的格式输出
占位符:
printf函数可以输出文本中指定占位符,所谓“占位符”,就是这个位置可以用其它值代替,比如,“%d”就是占位符,表示这个位置要用其它值来代替,占位符第一个字符是%,第二个字符表示占位符类型,%d表示这个位置必须用一个整数来代替。
占位符列举:
printf函数可以限定占位符的最小宽度
上面这个例子中,“%5d”表示这个占位符至少要占5位宽度,若未满5位,则打印空格,若满足5位,则不做限制原样打印,printf函数默认是右对齐,想要左对齐,应在占位符表示类型前加上“—”。
上面的例子中,“%6.2f”就表示占位符占6位,其中保留小数点后两位,所以0.5前有两个空格
最小宽度和小数位数这两个限定值,都可以通过“*”来代替,通过printf函数的参数传入
只输出部分字符串:
%s占位符用来输出字符串,默认是全部输出,若只想要输出前几位,则需要使用过“%[m]s”指定输出的长度,这里的m是个数字,表示所要输出长度
上面例子中,“%.5s”表示输出字符串“hello world”的前5位,即“hello”
scanf函数是一个标准输入函数,它可以接收用户从键盘输入的数据,并将这些数据存储在对应的变量中
1.scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件
2.scanf中也有占位符,占位符和后边的参数提供的地址一一对应。
3.scanf()处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符,scanf输出字符占位符的时候,不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。
4.scanf的占位符%s表示读取一个字符串,遇到空白字符就停止读取。
5.输入数据是要和scanf里面的内容对端对其如“%d-%d-%d”,输入数据时不要忘记-这个符号,即2017-2-12,输入时“ - “千万不能忘。,也可以用%*c代替 ” - ”,“ %*c",会将符号忽略掉。
6.scanf在输入数据传递给数组时可能会越界,因此VS里面会有警告。
如果输入有警告,在前面添加#define _CRT_SECURE_NO_WARNINGS
这就会忽略掉数据丢失,但我们也需要时刻提防。
它的原型
int scanf(const char * format,...)
其中,format是一个格式化字符串,用于指定要读取的数据的格式,后面的参数是要读取的数据的地址,scanf函数会根据格式化字符串中的格式指示符,从设备中读取数据,并将读取到的数据存储到对应参数的地址中
需要注意的是,printf和scanf函数都返回成功读取或写入的项数,如果发生错误则返回负值