【C】占位符详解

目录

※基础格式声明※

1.字符与字符串

%c  输出一个字符

%s   输出字符串

2.整型

%d  %i  输出带符号的十进制整数

%u  输出无符号的十进制整数

%o  输出八进制整数

%x  %X  输出十六进制整数

%x 用于输出小写字母表示的十六进制整数

%X 用于输出大写字母表示的十六进制整数

3.浮点数

%f  输出浮点数

%e  %E  用科学计数法输出浮点数

%e  指数部分使用小写字母

%E  指数部分使用大写字母

%g %G  根据数值的大小自动选择%f\%e\%E输出浮点数

4.指针

%p  输出指针地址

5.其他

[%%  输出一个百分号]

※进阶格式声明※


※基础格式声明※

1.字符与字符串

%c  输出一个字符

占位符后面的内容应该是一个整型int或字符char,表示要输出的字符的ASCII码值或字符本身

char ch = 'A';
printf("%c", ch); //输出字符'A'
printf("%c", 123); //输出字符'{'

%s   输出字符串

占位符后面的内容应该是一个地址(字符数组名或指向字符串的指针char*)
//%s由该地址开始依次输出字符,直到遇到结束符[\0]而停止输出

char str[4] = {'M','E','T'};
printf("%s\n", str); //输出 MET
char* p = "mettrnai"; //p存放字符串首字符地址
printf("%s\n", p); //输出 mettrnai

2.整型

%d  %i  输出带符号的十进制整数

占位符后面的内容应该是一个整型int

int a = 10;
printf("%d", a); //输出10
int b = -7;
printf("%i", b); //输出-7

%hd        短整型short int

%ld         长整型long

%lld        长长整型long long

%u  输出无符号的十进制整数

占位符后面的内容应该是一个无符号整数unsigned int

unsigned int num = 10;
printf("%u", num); //输出10
int num = -10;
//11111111111111111111111111110110
//%u输出无符号整型,于之没有符号位
//直接将2进制(11111111111111111111111111110110)转化为10进制(4294967286)输出
printf("%u", num); //输出4294967286

%hu        无符号短整型unsigned short int

%lu         无符号长整形unsigned long

%llu        无符号长长整型unsigned long long

%o  输出八进制整数

占位符后面的内容应该是一个无符号整数unsigned int

unsigned int num = 10;
printf("%o", num); // 输出八进制整数12
int num = -10;
//储存二进制补码:11111111111111111111111111110110
//%o占位符后面的内容应该是一个无符号整数
//11111111111111111111111111110110由二进制(无符号位)直接转换为8进制输出:
printf("%o", num); //输出37777777766

%x  %X  输出十六进制整数

占位符后面的内容应该是一个无符号整数unsigned int

%x 用于输出小写字母表示的十六进制整数
unsigned int num = 255;
printf("%x", num); //输出ff
%X 用于输出大写字母表示的十六进制整数
unsigned int num = 1203;
printf("%X", num); //输出4B3

3.浮点数

%f  输出浮点数

占位符后面的内容应该是一个浮点数double

double num = 3.14;
printf("%f", num); //输出浮点数3.140000

%lf         双精度浮点型double

%e  %E  用科学计数法输出浮点数

占位符后面的内容应该是一个浮点数double

%e  指数部分使用小写字母
double num = 10000.0;
printf("%e", num); //输出1.000000e+04
%E  指数部分使用大写字母
double num = 10000.0;
printf("%E", num); //输出1.000000E+04

%g %G  根据数值的大小自动选择%f\%e\%E输出浮点数

占位符后面的内容应该是一个浮点数double

double a = 10000.0000;
float b = 0.0000001917;
printf("%g\n", a); //输出10000
printf("%g\n", b); //输出1.917e-07
printf("%G\n", b); //输出1.917E-07

4.指针

%p  输出指针地址

*以16进制的形式输出地址
占位符后面的内容应该是一个指针类型的变量

int a = 0;
int* pa = &a;
int arr[10] = { 0 };
printf("%p\n", &a);
printf("%p\n", pa);
printf("%p\n", arr); //数组名为数组首元素地址

5.其他

[%%  输出一个百分号]

无需后面的内容。

printf("50%%"); //输出 50%

※进阶格式声明※

指定输出数据域宽(所占列数)

  • %d 和 %i:打印有符号十进制整数。  
    %5d:打印宽度为5的有符号十进制整数。右对齐
    %-5d:打印宽度为5的有符号十进制整数。左对齐
  • %f 和 %F:打印浮点数。
    %8.2f:打印宽度为8的浮点数,并保留两位小数。右对齐
    %-8.2f:打印宽度为8的浮点数,并保留两位小数。左对齐
  • %s:打印字符串。
    %10s:打印宽度为10的字符串。右对齐
    %-10s:打印宽度为10的字符串。左对齐
  • %c:打印单个字符。
    %6c:打印宽度为6的字符。右对齐
    %-6c:打印宽度为6的字符。左对齐
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: printf输出格式说明符是用于指定输出格式的占位符,用于控制输出的格式和精度。常用的格式说明符包括: 1. %d:输出十进制整数。 2. %f:输出浮点数。 3. %c:输出字符。 4. %s:输出字符串。 5. %p:输出指针地址。 6. %o:输出八进制整数。 7. %x或%X:输出十六进制整数,%x输出小写字母,%X输出大写字母。 8. %e或%E:输出科学计数法表示的浮点数,%e输出小写字母,%E输出大写字母。 9. %u:输出无符号十进制整数。 10. %g或%G:根据数值的大小自动选择%f或%e输出浮点数,%g输出小写字母,%G输出大写字母。 除了以上常用的格式说明符外,还有一些其他的格式说明符,如%ld、%lld、%lu等,用于输出长整型、长长整型、无符号长整型等数据类型。在使用printf输出时,需要根据实际需要选择合适的格式说明符,以达到正确的输出效果。 ### 回答2: printf 是 C 程序中非常常用的输出函数,可以将变量和常量以指定的格式输出到控制台上或者文件中。printf 的输出格式说明符是非常重要的组成部分,可以掌握他们的含义与用法将会有助于更好的使用 printf 函数。 下面我们来详细解读一下格式说明符中常用的几个: %s:将字符串输出。例如:printf("%s", "Hello world"),输出字符串 Hello world。 %c:将字符输出。例如:printf("%c", 'H'),输出字符 H。 %d:将十进制整数以带符号方式输出。例如:printf("%d", 123),输出整数 123。 %ld:将长整型以带符号方式输出。例如:printf("%ld", 123456L),输出长整型 123456。 %f:将浮点数以小数形式输出。例如:printf("%f", 3.14),输出浮点数 3.140000。 %e:将浮点数以指数形式输出。例如:printf("%e", 3.14),输出浮点数 3.140000e+00。 %x:将十六进制整数以无符号方式输出,并且以小写字母表示 a-f。例如:printf("%x", 255),输出十六进制整数 ff。 %X:将十六进制整数以无符号方式输出,并且以大写字母表示 A-F。例如:printf("%X", 255),输出十六进制整数 FF。 %u:将十进制整数以无符号方式输出。例如:printf("%u", 123),输出无符号整数 123。 %p:输出指针地址值。例如:printf("%p", &a),输出变量 a 的地址。 %o:将八进制形式输出一个整数。例如:printf("%o", 8),输出八进制数 10。 上面是 printf 函数中常用的格式说明符。此外,还有许多特殊的格式说明符,如:printf("%10d", 123),输出宽度为 10 的十进制整数 123,这里的 10 指定了输出的宽度。还有其它许多小技巧,需要在使用中逐渐积累。 需要注意的是,在使用 printf 函数时,格式说明符一定要与要输出的变量类型匹配,否则会造成输出错误。同时,在输出整数时,可以使用修正符号来指定输出的宽度和长度精度,这有助于我们得到更规范、美观的输出结果。 综合来看,printf 输出格式说明符是 C 程序中非常重要的部分,因此仔细学习使用,可以为我们的程序输出效果带来很大的改善。 ### 回答3: C语言中,printf函数是一种输入输出函数,它的主要作用是将参数输出到标准输出设备(stdout),即打印机或屏幕上。在使用printf函数输出时,需要使用格式说明符指定输出的格式,否则输出的内容将无法正确地显示在屏幕上。以下是C语言printf输出格式说明符的详解: 1. 字符类型(%c) %c用于输出单个字符,例如:printf("%c", 'A'); 则输出结果为"A"。 2. 整数类型(%d/%i) %d/%i用于输出以十进制形式表达的整数,例如:printf("%d", 100); 则输出结果为"100"。 3. 八进制类型(%o) %o用于输出以八进制形式表达的整数,例如:printf("%o", 100); 则输出结果为"144"。 4. 十六进制类型(%x/%X) %x/%X用于输出以十六进制形式表达的整数,其中%x输出结果为小写字母,%X输出结果为大写字母。例如:printf("%x", 100); 则输出结果为"64"。 5. 浮点数类型(%f) %f用于输出以小数形式表达的实数,例如:printf("%f", 3.1415926); 则输出结果为"3.141593"。 6. 科学计数法类型(%e/%E) %e/%E用于输出以科学计数法形式表达的实数,其中%e输出结果为小写字母,%E输出结果为大写字母。例如:printf("%e", 3.1415926); 则输出结果为"3.141593e+00"。 7. 字符串类型(%s) %s用于输出字符串,例如:printf("%s", "Hello World!"); 则输出结果为"Hello World!"。 8. 指针类型(%p) %p用于输出指针地址,例如:printf("%p", &a); 则输出结果为"0x7ffeeb4b345c"。 以上是C语言printf输出格式说明符的详解,掌握这些格式说明符可以更加灵活地输出内容。同时,在程序中使用printf函数时,需要注意输出格式和参数类型的匹配,否则会产生错误的结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值