printf函数和scanf函数

库函数:

为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用,这些函数组成了一个函数库,被称为标准库,在这个基础上一些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)

一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件

printf函数

是一个标准输出函数,是一个库函数,它可以按照用户指定的格式将内容输出到屏幕上,在使用printf函数之前,需要包含头文件.printf的函数名其实就是由两部分组成,即print和format(格式化),f就是format,表示可以定制输出文本的格式,就是所谓的按格式输出

它的原型

int printf(const char * format,...)

其中,format是一个格式化字符串,用于指定输出的格式,后面的参数是要输出的数据,printf函数会根据格式化字符串中的格式指示符,将后面的参数按照指定的格式输出

占位符:

printf函数可以输出文本中指定占位符,所谓“占位符”,就是这个位置可以用其它值代替,比如,“%d”就是占位符,表示这个位置要用其它值来代替,占位符第一个字符是%,第二个字符表示占位符类型,%d表示这个位置必须用一个整数来代替。

占位符列举:

printf函数和scanf函数_第1张图片

printf函数可以限定占位符的最小宽度

printf函数和scanf函数_第2张图片

上面这个例子中,“%5d”表示这个占位符至少要占5位宽度,若未满5位,则打印空格,若满足5位,则不做限制原样打印,printf函数默认是右对齐,想要左对齐,应在占位符表示类型前加上“—”。

printf函数和scanf函数_第3张图片

printf函数和scanf函数_第4张图片

上面的例子中,“%6.2f”就表示占位符占6位,其中保留小数点后两位,所以0.5前有两个空格

最小宽度和小数位数这两个限定值,都可以通过“*”来代替,通过printf函数的参数传入

printf函数和scanf函数_第5张图片

只输出部分字符串:

%s占位符用来输出字符串,默认是全部输出,若只想要输出前几位,则需要使用过“%[m]s”指定输出的长度,这里的m是个数字,表示所要输出长度

printf函数和scanf函数_第6张图片

上面例子中,“%.5s”表示输出字符串“hello world”的前5位,即“hello”

  • prinf()的作用是将参数文本输出到屏幕,f表示format(格式化),表示可以定制输出文本的格式
  • printf()不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行
  • priintf()可以在输出文本中指定占位符,“占位符”,就是这个位置可以用其它值代入
  • printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n+1个

scanf函数是一个标准输入函数,它可以接收用户从键盘输入的数据,并将这些数据存储在对应的变量中

1.scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

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函数都返回成功读取或写入的项数,如果发生错误则返回负值

你可能感兴趣的:(算法)