1.格式化的输出
1.1 printf的介绍
#include <stdio.h>int printf(“格式字符串”,标识符名称 ...);
printf是一个函数,“”里面用于设置输出的格式,后面代表具体的输出内容
printf(“你好%d 我好%d 大家好%d 我们都好\n”);
普通字符:你好 我好 大家好 我们都好——》原样输出,一般用于打印提示信息
格式控制符:%d ——》用于控制输出格式,也叫占位符
转义字符:\n
1.2常见的格式控制符
%d %i ——》int%u——》unsigned int
%hd/ %ld——》short/long
%c ——》char
%s ——》字符串“nihao”
%f ——》float/double
%e ——》指数的形式输出浮点数
%g ——》从%e和%f之间选择较好的输出格式输出,一般省略后面多余的0
特殊的格式控制符:
%x/%o ——》十六进制/八进制格式
%p ——》输出一个地址
%#x ——其中的%#表示的输出提示方式,表示输出的是十六进制数,会输出结果自动加上0x%#o —— 其中的%# 表示的输出提示方式,表 示输出的 是 八进制 数 ,会输出结果自动加上0 注意:(1)格式控制符中使用的格式和后面输出的数据要保持一致,如果类型不一致,结果不可预知
(2)字符类型的本质就是整数,字符类型也可以使用%d格式输出,输出的是字符所对应的ASCII码
(3)%d 跟 %i 在printf中没有区别,但是 在scanf中有区别:%i 除了读取十进制,还可以读取十六进制,八进制
特殊的格式控制符:
%实际上就是格式控制符的开始
%3d 输出的数据占3个字符的宽度
%02d 输出的数据占用2个字符的宽度,如果不够空位补0
%-3d 输出的数据占3个字符的宽度,左对齐,没有-默认是右对齐
%m.nf 输出一个共m位宽度的数据,小数点后有n位
%% 输出一个%号
1.4常见的转义字符
\n 换行\r 回车不换行,回到本行开始位置
\b 退格
\t 制表,tab键
\" 输出"
\' 输出'
\? 输出?
\0 字符串的结束标志
\a 报警
2.格式化的输入
2.1 scanf的介绍
#include <stdio.h>scanf("格式字符串",标识符地址列表);
scanf()是一个函数,格式字符串和printf中一样,地址列表:&num(int num ;scanf("%d",&num);)
scanf在读取数据的时候,会跳过前面的空白字符(空格,回车,tab键),直接去寻找指定的格式读取数据
2.2 注意
(1)输入的数据要和scanf中指定的格式要一致,(2)scanf中的格式字符串中要求只能有格式控制符(不是不可以有)
(3)当读取多个数据时,使用空白字符将多个输入的数据隔开
(4)当读取多个数据中有%c格式的数据时,采用在%c前面加一个空格。表示忽略所有空白字符的意思
(5)scanf中不要省略&,否则可能引发段错误
段错误:访问了非法地址
(6)scanf(“%d”,&num);
scanf不会将末尾的回车符读走,scanf(“%*c”),——》读取任意一个字符并丢弃
2.3 %d ;%i 在scanf中的区别
在scanf中%i除了能读取十进制还能读取八进制跟十六进制