1,printf函数
printf函数的作用是将参数文本输出到屏幕 。
"f"表示format(格式化),表示可以定制输出文本的格式。
注:printf()不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。如果想换行,可以在文本结尾添加一个换行符\n。\n也可以放在文本内部。
printf("abc\nedf");
输出的是:abc
edf
占位符
就是这个地方可以植入其他的文本。
一个printf()中可以有一个或多个占位符。
%a | 十六进制浮点数,小写 |
%A | 十六进制浮点数,大写 |
%c | 字符 |
%d | 十进制整数 |
%e | 使用科学计数法的浮点数,e为小写 |
%E | 使用科学计数法的浮点数,E为大写 |
%i | 等同于%d |
%f/%lf | 小数,float和double |
%hd | 十进制short int类型 |
%ho | 八进制short int类型 |
%hx | 十六进制short int类型 |
%hu | unsigned short int类型 |
%n | 已输出的字符串的数量,该占位符本身不输出,只将值储存在指定变量中 |
%o | 八进制整数 |
%p | 指针(用来打印地址) |
%s | 字符串 |
%u | 无符号整数 |
%u | 十六进制整数 |
%zd | size_t类型 |
%% | 输出一个百分号 |
输出格式
限定宽度
- %5d:这个占位符的宽度至少有五位,如果少于五位,在前面加空格占位(输出时默认右对齐),如果多于五位,正常输入。
- %-5d:这个占位符的宽度至少有五位,如果少于五位,在后面加空格占位(添加一个负号表示输出时左对齐)
- %+d:输出的数值总是带有正负号。
- %lf:小数点后面默认6位。
- %12lf:算上小数点至少有12位。
- %.2f:限制小数点后位数为2位。会四舍五入
- 这两行输出结果是一样的,可以用这个*来改变具体的数值。
printf("%12.4lf",23.11);
printf("%*.*lf",12,4,23.11);
输出部分字符串
使用%.[m]s可以指定字符串长度,m为一个数字 ,表示要输出的长度。
2,scanf函数
scanf函数是C语言中的输入函数,用于从标准输入设备(一般是键盘)读取指定格式的数据。它可以根据指定的格式字符串,按照指定的数据类型将输入的数据读取到对应的变量中。scanf函数可以用来获取用户的输入,从而实现与用户的交互。
语法和printf函数比较相似。
scanf()在处理数值占位符时,会自动忽略空白字符,包括空格,制表符,换行符等。
返回值(不太懂)
占位符
和printf一致。
除%c外,其他占位符都会自动忽略起首的空白字符。
如果要强制跳过字符前的空白字符,可以在%c前多加一个空格。表示跳过一个或多个空格
%s从第一个非空字符开始到第一个空白字符结束。遇到scanf()时会在字符串变量最后加一个空字符/0。
注:scanf()将字符串读入字符数组时,不会检测字符串是否超过了数组长度。所以,储存字符串时,很可能会超过数组的边界,导致预想不到的结果。为了防止这种情况,使用%s占位符时,应该指定读入字符串的最长长度,即写成%[m]s,其中的[m]是一个整数,表示读取字符串的最大长度,后面的字符将被丢弃。
赋值忽略符*
只要将*加到任何占位符的%后面,该占位符就不会返回值,解析后被丢弃
初始化
局部变量不初始化,它的值是随机的。
全局变量不初始化,它的值为0。
标签:03,输出,字符,scanf,笔记,占位,printf,字符串,网课 From: https://blog.csdn.net/2301_80669633/article/details/137426248