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
浙公网安备 33010602011771号