赞
踩
我们要记住signed ➕ 类型 完全等效与 单独的类型
所以我们下面会用(signed)来表示可以省略不写。
如果格式化输出的并不是类型匹配的格式,会发生隐式类型转换,
- (signed)int (有符号整型)———%d
- unsigned int (无符号的int类型)———%u
- size_t (无符号的int类型)————%zu
- 单独的unsigned (unsigned int 的缩写)———— %u
- int a = 2;
- unsigned int b = 3;
- size_t c = 4;
- unsigned d = 5;
- printf("%d\n", a);
- printf("%u\n", b);
- printf("%zu\n", c);
- printf("%u\n", d);
- unsigned(signed)long (有符号长整型)———%ld
- unsigned long (无符号的长类型)———%lu
- long a = 2;
- unsigned long b = 3;
- printf("%ld\n", a);
- printf("%lu\n", b);
- (signed)long long(有符号长长整型)———%lld
- unsigned long long (无符号的长类型)———%llu
- long long a = 2;
- unsigned long long b = 3;
- printf("%lld\n", a);
- printf("%llu\n", b);
- (signed)short (有符号短整型)———%hd
- unsigned short (无符号的长类型)———%hu
- short a = 2;
- unsigned short b = 3;
- printf("%hd\n", a);
- printf("%hu\n", b);
- 以上类型若是想在printf和scanf中保留相关位数———%md
请看本篇文章:%md在printf语句和scanf语句中的区别-CSDN博客
打印八进制数:
不输出前缀0———%o
输出前缀0 ————%#o
八进制数例如:0123,0234,0345,03等前缀是0的数
若想自己定义变量为八进制数字:int x = 01234567; 0开头,后面数字0~7之间;
- int a = 0123;
- printf("%o\n", a);
- printf("%#o\n", a);
打印十六进制形式
不输出前缀0x———%x , %X
输出前缀0x————%#x,%#X
十六进制数例如:0x11223344,0X11,0x221c等前缀是0x和0X的数
若想自己定义变量为八进制数字:int x = 0x123a; 0开头,后面数字0~9,a~f之间
(a为10,f为15)
- #include <stdio.h>
- int main()
- {
- int x= 0x19adf;
- printf("%#x\n", x);
- printf("%x\n", x);
- return 0;
- }
在C语言中,%i和%d都是格式控制符,用于格式化输出整数类型的变量。
%d 用于输出有符号的十进制整数。它会将整数按照十进制形式输出,并且如果整数是负数,则会输出一个负号。
%i 也用于输出有符号的十进制整数。与%d相比,%i可以将八进制数字和十六进制数字转换成十进制数字输出。
- float(有符号的单精度浮点数)———%f 默认保留6位小数
- double(有符号的双精度浮点数)———%lf 默认保留15位小数
- 在输出中想保留n位小数———%.nf 或者 %.nlf
- #include <stdio.h>
- int main()
- {
- float a = 1.2345;
- printf("%.1f\n",a);
- return 0;
- }
这里表示输出的结果保留一位小数,也就是1.2
1. 科学计数法表示的浮点数(小写字母)———
%e
2. 科学计数法表示的浮点数(大写字母)———%E
- double a = 100.23;
- printf("%e\n", a);
- printf("%E\n", a);
- char———%c( 输出单个字符 )
- char———%d(输出字符对应的ASICC值)
- char c = 'a';
- printf("%c\n", c);
- printf("%d\n", c);
字符串类型———%s (输出字符串)
printf是可以自动识别字符串类型的,所以也可以这样打印:
printf("%s\n", "abcderf");
m代表的是在屏幕上输出m个字符个数
m 前面没有负号 右对齐
m 前面有负号 左对齐
m <= 字符串长度,打印整个字符串m > 字符串长度,不够地方用空格填充
- #include <stdio.h>
- int main()
- {
- printf("%5s,%s","computer","computer");
- return 0;
- }
如图,我们是%5s,5是小于字符串长度的,所以打印整个字符串就OK啦
- #include <stdio.h>
- int main()
- {
- printf("%15s,%s","computer","computer");
- return 0;
- }
这里是打印15个字符个数,很明显字符串长度小于15,不够的就用空格填充
打印地址———%p(16进制显示)
- int a = 100;
- printf("%p\n", &a);
%n 用来统计printf在%n之前打印的字符个数;%n不会打印出内容;
具体看这个博客:%n在C语言总的意思-CSDN博客
- #include <stdio.h>
- int main()
- {
- int b;
- printf("helloworld %n12345\n", &b);
- printf("%d\n", b);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。