1.分别用 %d %o %x 输出一个泌值,并写清楚区别。
#include <stdio.h>//1.分别用 %d %o %x 输出一个泌值,并写清楚区别。int main(){ int a = 1234; printf("以百分之d显示:%d \n以百分之o显示: %o \n以百分之x显示: %x", a, a, a); getchar(); return 0;}
它们之间的区别:显示的进制的区别。
2.将printf的帮助文档看一遍,将里边的例子运行一遍,注意C11新增的函数,printf和printf_s的区别。
3.printf详解笔记。
转换 说明符 | 解释 | 参数类型 |
---|
长度修改器 | hh | h | (None) | l | ll | j | z | t | l |
---|
% | 写文字 % 。规范必须完整的转换 %% . | N /A | N /A | N /A | N /A | N /A | N /A | N /A | N /A | N /A |
---|
c | - 写一个字符。
首先转化为参数unsigned char。如果使用l修饰符,首先转换为一个char串参数,好像通过% lswchar_t[2]论点。 | N /A | N /A | | | N /A | N /A | N /A | N /A | N /A |
---|
s | - 写一个字符串
参数必须是一个指针的初始元素的char数组。精确指定要写入的最大字节数。每个字节写道,如果没有指定精度,不包括第一个空终结者。如果使用l说明符,参数必须是一个指针初始元素的数组wchar_t,它可以转化为字符数组调用 wcrtomb与zero-initialized转换状态。 | N /A | N /A | | | N /A | N /A | N /A | N /A | N /A |
---|
d
i | - 有符号整数转换成十进制表示法[-]dddd。
精确指定数字的最小数量。默认的精度是1. 如果转换值和精度?0?转换的结果在任何字符。 | | | | | | | | | N /A |
---|
o | - 将一个unsigned整数转换为八进制表示呜。
精确指定数字的最小数量。默认的精度是1。如果转换值和精度?0?转换的结果在任何char。另一种实现精度是提高如果必要,写一个前导零。在这种情况下如果转换值和精度?0?、单?0?是写的。 | | | | | | | | | N /A |
---|
x
X | - 将一个unsigned整数转换为十六进制表示hhhh。字符
为x 转换字母 abcdef 使用。 为X 转换字母 ABCDEF 使用。 精确指定数字的最小数量。默认的精度是1。如果转换值和精度?0?转换的结果在任何char。在选择实现0 x 或0 x 前缀的结果如果转换后的值是零。 | N /A |
---|
u | - 将一个unsigned整数转换成十进制表示dddd。
精确指定数字的最小数量。默认的精度是1。如果转换值和精度?0?转换的结果在任何字符。 | N /A |
---|
f
F | - 将浮点数转换为十进制记数法在[-]ddd.ddd风格。
精确指定了最小数量的小数点后位数出现char。默认的精度是6。在另一种实现小数点char是书面即使没有数字跟随它。无穷和不是一个数字转换风格看笔记。 | N /A | N /A | | | N /A | N /A | N /A | N /A | |
---|
e
E | - 将浮点数转换为十进制指数表示法。
为e [-]d.ddd转换风格e 使用±dd。 为E [-]d.ddd转换风格E 使用±dd。 该指数包含至少两个数字,数字仅在必要时使用。如果该值为?0?指数也?0?。精确指定了最小数量的小数点后位数出现char。默认的精度是6。在另一种实现小数点char是书面即使没有数字跟随它。无穷和不是一个数字转换风格看笔记。 | N /A | N /A | N /A | N /A | N /A | N /A |
---|
a
A | - 将浮点数转换为十六进制指数表示法。
为一个 转换风格(-)0 x h.hhhp 使用±d。 为一个 转换风格(-)0 x h.hhhP 使用±d。 第一个十六进制数字 0 如果论点不是规格化的浮点值。如果该值为?0?指数也?0?。精确指定了最小数量的小数点后位数出现char。默认值的精度满足精确表示。在另一种实现小数点char是书面即使没有数字跟随它。无穷和不是一个数字转换风格看笔记。 | N /A | N /A | N /A | N /A | N /A | N /A |
---|
g
G | - 将浮点数转换为十进制或十进制指数表示法根据价值和精度。
为g 转换风格转换与风格e 或f 将被执行。 为G 转换风格转换与风格E 或F 将被执行。 让 P 等于精密如果非零,6如果没有指定精度,或1如果精度?0?。然后,如果一个转换与风格 E 会有指数的 X : - 如果P > X≥−4、转换与风格
f 或F 和精密P−1−X。 - 否则,转换与风格
e 或E 和精密P−1。
除非备选表示请求尾随零删除,删除小数点char如果没有小数部分。无穷和不是一个数字转换风格看笔记。 | N /A | N /A | N /A | N /A | N /A | N /A |
---|
n | - 返回char数迄今写这个调用函数。
结果写入指向的值参数。规范可能不包含任何国旗,字段宽度,或精度。 | | | | | | | | | N /A |
---|
p | 写一个实现定义的char序列定义一个指针。 | N /A | N /A | 无效* | N /A | N /A | N /A | N /A | N /A | N /A |
---|
∞转换为浮点转换功能 inf 或 infinity 。哪一个是用来实现定义。 不是一个数字转化为 nan 或南(char_sequence) 。哪一个是用来实现定义。 的转换F ,E ,G ,一个 输出 INF , INFINITY , NAN 代替。 尽管 %c 预计 int 传递一个参数,它是安全的 char 由于整数提升可变函数被调用时发生。 正确的转换规格固定宽度char类型(int8_t等)中定义的头< cinttypes >(c++)或< inttypes.h >(C)(尽管 PRIdMAX,PRIuMAX等的代名词 %jd , %ju 等等)。 memory-writing转换说明符%n是一种常见的安全攻击的目标,格式char串取决于用户输入和不支持bounds-checked吗printf_s 家庭的功能。 有一个序列点行动后的每个转换说明符;这允许存储多个%n结果在相同的变量和打印存储的值%n早些时候在同一个电话。 如果转换规范是无效的,行为是未定义的。 |
... | - - - - - - | 参数指定数据打印 |
返回值
1、2)char数传输到输出流或负面价值如果输出误差或编码错误(字符串和字符转换说明符)发生
3)写入的字符数 buffer
(不包括终止空字符),或者一个负值如果一个编码错误(字符串和字符转换说明符)发生
4)字符数(不包括终止空字符),会被写入 buffer
如果 bufsz
被忽视,或者一个负值如果一个编码错误(字符串和字符转换specifier)发生
5、6)字符数传输到输出流或负面价值如果输出错误,运行时constrants违反错误,或者一个编码错误发生。
7)写入的字符数 buffer
,不包括空字符(总是只要写的 buffer
不是一个空指针 bufsz
不为零和不大于 RSIZE_MAX
),或在运行时零约束违反和负面价值编码错误
8)字符数不包括终止空字符(总是只要写的 buffer
不是一个空指针 bufsz
不为零和不大于 RSIZE_MAX
),它会被写入buffer
如果 bufsz
被忽视,或者一个负值如果运行时约束违反或编码错误发生
4.厘米转英寸的程序编写,CM2FT,输出100次转换,前面保留3位,不足补零,小数5位,不保留0。
1 前面保留3位,不足补零
#include <stdio.h>//4.厘米转英寸的程序编写,CM2FT,输出100次转换,前面保留3位,不足补零,小数5位,不保留0。int main(){ for (int i = 1;i<=100;i++) { printf("%d厘米 = %09.5f英尺 \n",i,i*0.0328); } getchar(); return 0;}
2 小数5位,不保留零
int main(){ for (int i = 1;i<=100;i++) { printf("%d厘米 = %9.5g英尺 \n",i,i*0.0328); } getchar(); return 0;}
3 如果两个条件叠加,不会做。
5.米转英寸,要求同上。
1 前面保留3位,不足补零
//5.米转英寸,要求同上。int main(){ for (int i = 1;i<=100;i++) { printf("%d米 = %09.5f英寸 \n",i,i*39.37); } getchar(); return 0;}
得出结果,实际小数点前面数位超过3位,就实际显示,少于3位就补零
2 小数5位,不保留零
int main(){ for (int i = 1;i<=100;i++) { printf("%d米 = %.5g英寸 \n",i,i*39.37); } getchar(); return 0;}
3 同上不会做。
第八课作业