printf输出格式

浮点数格式控制符

int main(void)
{
    //浮点数16进制p-记数法
    printf("浮点数p-记数法:%a\n", 100.0);
    printf("浮点数p-记数法:%A\n", 123.0);

    //浮点数e-记数法
    printf("浮点数e-记数法:%e\n", 100.0);
    printf("浮点数e-记数法:%E\n", 123.0);

    //浮点数十进制记数法
    printf("浮点数十进制记数法:%f\n", 123.0);
    printf("浮点数十进制记数法:%F\n", 123.0);

    //根据数值不同自动选择%f或%e
    printf("浮点数自动记数法:%g\n", 123.0);
    printf("浮点数自动记数法:%G\n", 123.0);

    //long double型浮点数
    printf("long double型浮点数:%Lf\n", 123.0);
    printf("long double型浮点数:%LF\n", 123.0);

    //浮点数小数点精度控制
    printf("2位精度:%.2f\n", 3.14156);//3.14
    printf("4位精度:%.4f\n", 3.14156);//3.1416

    system("pause");
    return 0;
}

整数格式控制符

int main(void)
{
    int value = 0x12345678;
    //无符号八进制整数
    printf("无符号八进制整数:%o\n", 123);
    
    //char类型整数
    printf("char类型整数:%hhu\n", value);
    printf("char类型整数:%hhd\n", value);
    printf("char类型整数:%hhx\n", value);

    //short类型整数
    printf("short类型整数:%hu\n", value);
    printf("short类型整数:%hd\n", value);
    printf("short类型整数:%hx\n", value);

    //int类型整数
    printf("int类型整数:%u\n", value);
    printf("int类型整数:%d\n", value);
    printf("int类型整数:%x\n", value);

    //long类型整数
    printf("long类型整数:%lu\n", value);
    printf("long类型整数:%ld\n", value);
    printf("long类型整数:%lx\n", value);

    //long long类型整数
    printf("long long类型整数:%llu\n", value);
    printf("long long类型整数:%lld\n", value);
    printf("long long类型整数:%llx\n", value);
    
    //intmax_t类型整数
    printf("intmax_t类型整数:%ju\n", value);
    printf("intmax_t类型整数:%jd\n", value);
    printf("intmax_t类型整数:%jx\n", value);
    
    //ptrdiff_t类型整数
    printf("intmax_t类型整数:%tu\n", value);
    printf("intmax_t类型整数:%td\n", value);
    printf("intmax_t类型整数:%tx\n", value);

    //size_t类型整数
    printf("size_t类型整数:%zd\n", value);
    printf("size_t类型整数:%zu\n", value);
    printf("size_t类型整数:0x%zx\n", value);

    //windows平台下专用说明符%I64,表示64位整数
    printf("windows平台64位整数:%I64d\n", value);
    printf("windows平台64位整数:%I64u\n", value);
    printf("windows平台64位整数:0x%I64x\n", value);

    system("pause");
    return 0;
}

正数相关格式控制符

int main(void)
{
    //使用+号且值为正的有符号数时,在值前面显示+号
    printf("%+d\n", 10);//+10
    printf("%+d\n", -12);//-12

    printf("%+f\n", 10.0);
    printf("%+f\n", -12.0);

    //使用空格且值为正的有符号数时,在值前面显示空格
    printf("% d\n", 10);// 10
    printf("% d\n", -12);//-12

    printf("% f\n", 10.0);
    printf("% f\n", -12.0);
    system("pause");
    return 0;
}

字段宽度最小值

int main(void)
{
    //最小长度为3,不足3则在左边补充空格
    printf("%3d\n", 12);

    //最小长度为10,不足10则在左边补充空格
    printf("%10f\n", 0.1);

    //最小长度为3,不足3则在左边补充0
    printf("%03d\n", 12);

    //最小长度为10,不足10则在左边补充0
    printf("%010f\n", 0.1);

    system("pause");
    return 0;
}

左对齐

int main(void)
{
    printf("start=>%-8d<=end\n", 123);//start=>123     <=end
    system("pause");
    return 0;
}

其它格式控制符

int main(void)
{
    //指针
    int value = 100;
    printf("指针:%p\n", &value);

    //字符
    printf("字符:%c\n", 0x33);

    //字符串
    printf("字符串:%s\n", "hello");

    //百分号
    printf("百分号:%%\n");

    //八进制整数前加上0
    printf("%#o\n", 123);

    //十六进制整数前加上0x或0X
    printf("%#x\n", 123);

    //浮点数一定使用小数点
    printf("%.0f\n", 1.0);
    printf("%#.0f\n", 1.0);
    system("pause");
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容