技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

C语言:格式字符串中的类型

基本格式字符含义详解

模式字符

数据类型

进制

计数法

备注

%c

 char       

-

-

 

%s

char*

-

-

 

%d,%i

int

10

-

 

%u

unsigned int

10

-

 

%o

unsigned int

8

-

 

%x,%X

unsigned int

16

-

x,X的区别是数据中A-F的大小写的区别

%f

double

10

浮点

12.34

%e,%E

double

10

指数

1.234000e+001

%g,%G

double

10

指数 OR 浮点

取其中较短的一种计数法

%a,%A

double

16

指数

Linux/gcc有定义

%p

void*

-

-

(C99) 等价于%08X,%#8x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

扩展格式字符含义

模式字符

可匹配模式

说明

数据类型

%l?

d,I,u,o,x,X

   长整形

long int

%h?

d,I,u,o,x,X

  短 整形

short int

%L?

a,A,e,E,f,F

浮点类型

long double

%ll

-

-

long long(C99)

%ls

-

-

wchar_t*

 

 

 

 

 

 

 

 

 

基本格式字符串总的来说有4类

1) 字符 %c

2) 字符串 %s
3) 整数 %d

4) 浮点%f 

 

浮点数测试

复制代码
double  x = 12.34;
printf("%f, %e, %E\n",x,x,x);
//打印 12.340000, 1.234000e+001, 1.234000E+001

double x = 12.34;
printf("%f,%g,%G\n",x,x,x);
//打印12.340000, 12.34, 12.34

double x = 12.34;
printf("%f,%a,%A\n",x,x,x);
//打印12.340000, 0x1.8ae147ae147aep+3, 0X1.8AE147AE147AEP+3
//模式a,A只在linux版本gcc有定义
复制代码

%g测试

printf("%g\n",12345678.1234);
//打印 1.23457e+007

printf("%g\n",12.1234);
//打印 12.1234
//可见都是%g,但是提供的数据太大了自动按照指数方式打印不然就打印浮点,这个模式的时候程序会做判断

%p测试

复制代码
//Linux/GCC
int a =2;
int *p=&a;
printf("%p\n",p); //0xbfa777b0
printf("%#8x\n",&a); //0xbfa777b0



//VC6
int a =2;
int *p=&a;
printf("%p\n",p); //0012FF44
printf("%08X\n",&a); //0012FF44
复制代码

 

posted on   codestyle  阅读(975)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示