printf输出说明

  1. 代码演示:
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
  1. 对齐
    在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;
    }
    
    
  2. 格式化
    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头文件中。

posted @ 2024-02-26 15:29  flxx  阅读(30)  评论(0编辑  收藏  举报