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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述