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 |
int
|
wint_t
|
N /A |
N /A |
N /A |
N /A |
N /A |
s |
- 写一个字符串
参数必须是一个指针的初始元素的char数组。精确指定要写入的最大字节数。每个字节写道,如果没有指定精度,不包括第一个空终结者。如果使用l说明符,参数必须是一个指针初始元素的数组wchar_t,它可以转化为字符数组调用wcrtomb与zero-initialized转换状态。
|
N /A |
N /A |
char*
|
wchar_t*
|
N /A |
N /A |
N /A |
N /A |
N /A |
d
i |
- 有符号整数转换成十进制表示法[-]dddd。
精确指定数字的最小数量。默认的精度是1. 如果转换值和精度?0?转换的结果在任何字符。
|
signed char
|
short
|
int
|
long
|
long long
|
intmax_t
|
signedsize_t
|
ptrdiff
|
N /A |
o |
- 将一个unsigned整数转换为八进制表示呜。
精确指定数字的最小数量。默认的精度是1。如果转换值和精度?0?转换的结果在任何char。另一种实现精度是提高如果必要,写一个前导零。在这种情况下如果转换值和精度?0?、单?0?是写的。
|
unsigned char
|
unsigned short
|
unsigned int
|
unsigned long
|
unsigned long long
|
uintmax_t
|
size_t
|
unsigned的版本ptrdiff
|
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 |
double
|
double (C99以来)
|
N /A |
N /A |
N /A |
N /A |
long double
|
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数迄今写这个调用函数。
结果写入指向的值参数。规范可能不包含任何国旗,字段宽度,或精度。
|
signed char*
|
short*
|
int*
|
long*
|
long long*
|
intmax_t*
|
signed size_t*
|
ptrdiff*
|
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 同上不会做。
时间: 2024-10-12 10:15:22