printf输出说明
- 代码演示:
int64_t d = 123; printf("test printf:%5" PRId64 "\n", d); printf("test printf:%-*d", 5, d); printf("test printf:%*d", 5, d); // output test printf: 123 test printf:123 test printf: 123
-
对齐
在C语言的printf
函数中,%*
是一个格式转换说明符,用于指定输出字段的宽度。这里的*
是一个占位符,表示该字段的宽度由后面的参数决定。
例如,printf("%*s", 10, "Hello")
表示输出一个宽度为10的字符串"Hello",不足10个字符的宽度用空格填充。
%-*s
中的-
表示左对齐,即在右侧填充空格,*
表示宽度由后面的参数决定,s
表示输出字符串。
%*d
、%*f
等格式转换说明符的含义类似,只是分别用于输出整数、浮点数等不同类型的数据。
以下是使用printf
函数实现左对齐和右对齐的演示代码:#include <stdio.h> int main() { int width = 10; printf("%-*s|%*d|%*s\n", width, "Name", width, 24, width, "USA"); printf("%-*s|%*d|%*s\n", width, "Alice", width, 30, width, "UK"); printf("%-*s|%*d|%*s\n", width, "Bob", width, 22, width, "Canada"); return 0; } -
格式化
PRId64
宏的定义如下:// #include <inttypes.h> #define PRId8 "hhd" #define PRId16 "hd" #define PRId32 "d" #define PRId64 "lld" PRId64
是一个用于printf
函数的格式化输出宏,用于表示一个64位整数。在使用时,可以直接在printf
函数的格式化字符串中使用PRId64
,然后将64位整数类型的变量传递给printf
函数。下面是一个简单的示例:
#include <stdio.h> #include <inttypes.h> int main() { int64_t num = 1234567890123456789LL; printf("The number is: %" PRId64 "\n", num); return 0; } 在这个示例中,
int64_t
是一个64位整数类型,num
是一个int64_t
类型的变量,存储了一个64位整数值。%" PRId64 "\n"
是格式化字符串,%" PRId64
表示占位符,PRId64
表示使用PRId64
宏表示的格式化输出,\n
表示换行。printf
函数会将num
的值按照PRId64
宏定义的格式化输出,输出结果为:The number is: 1234567890123456789 注意,在使用
PRId64
宏时,需要包含inttypes.h
头文件,因为PRId64
宏的定义在inttypes.h
头文件中。
本文来自博客园,作者:flxx,转载请注明原文链接:https://www.cnblogs.com/faithlocus/p/18034438
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通