printf是格式化的输出函数,scanf是C语言的输入功能;printf用于以规定格式将信息输出到标准输出设备,scanf是一种格式输入功能,即以用户指定的格式从键盘将数据输入到指定的变量中。
一、指代不同
1、printf:是格式化输出函数。
2、scanf:是C语言中的一个输入函数。
二、功能不同
1、printf:用于向标准输出设备按规定格式输出信息。
2、scanf:是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
三、特点不同
1、printf:的调用格式为:printf("<格式化字符串>", <参量表>)。printf()是C语言标准库函数,在 stdio.h 中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
2、scanf:scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
scanf 的使用看似细节繁杂,但使用起来非常简单。就目前而言,只要掌握以下方法:在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记。scanf 中双引号内,除了“输入控制符”外什么都不要写。“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。
“输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类型,数据是用户输入的,程序员是无法决定的,所以在写程序时要考虑容错处理,这个稍后再讲。使用 scanf 之前先用 printf 提示输入。只要掌握了以上五点,scanf 的使用基本上就没什么问题了。
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。