今天我们来说说c语言中的printf()与scanf()输入输出函数
在c语言中规定:可无输入但至少有一个或多个输出语句。
printf()与scanf()格式符输入输出函数
格式符输入输出函数是最为常用的输入与输出函数。
函数格式:printf(“控制格式符(如:%d,%f,%s等)”,变量或表达式);
例:int d=1;
char g='1';
printf('%d%c',d,c);
注意:如要输出字符常量直接将所需字符包含在分号中即可。
例如:printf('d=%d,g=%c',d,c);
输出结果为:d=1,g=1
另外除%c%d%f%s等常用格式符外printf还提供了#(输出进制标识如:八进制0,十六进制0x),-(实现左对齐右边补空格),+(输出正负符号),0(规定长度不够时在左或右补0),n(代表常量,实现右对齐左边补空格)
用法如下:printf('%#d,%-2d,%+d,%02d',2,2,2,2);
输出为:2,2 ,+2,02
注意:因为这里的2是十进制输出所以在第一个#控制时没有输出进制符,小可爱们可以尝试将一个变量赋8进制或16进制再进行输出。
2.scanf('格式符(与输出函数基本一致)',&变量);
例:int d;
char g;
scanf('%d%c',&d,&g);
注意:scanf()函数进行数值赋值时是以空格,tab,回车以及与格式控制符不对应的字符进行分隔并给相对应的变量赋值。格式控制符要与后面的变量类型相对应,否则会出错;变量前的&是必须要有的代表将数据写入变量所在地址内存空间。
例:int d,c;
scanf('%d%d',&d,&c);
将85与80分别赋给d与c
可输入:85 80或85a80或85(回车)80或85(tab)80
另外在输入时还有一个“*”符号,代表将跳过当前这个数而将下一个数赋给对应的变量
例:float f,g;
scanf('%f*%f',&f,&g);
将1.5与2.5分别赋给f,g。
如果这时输入1.5 2.5则会有f=1.5而g为不确定的值
这时应该这样输入才会将1.5,2.5正确赋值:1.5 33(此数可随便输入) 2.5 这样才能正确将2.5赋给g
scanf()与printf()格式控制符区别
printf()支持'%3.2f/%3.2s'精确输出,而scanf()是不支持所谓的精确输入法
例如:float f;
scanf('%3.2f',&f);
这条语句是错误的。
一篇一经典例题
例题一:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序代码将在下一篇中进行公布,小可爱们可以将所写的代码在评论区进行展示。