printf函数

作者: 陈伟志 | 来源:发表于2016-06-26 15:52 被阅读0次

    打印基本类型

    以下打印基本的数据类型, 如int, char, float等, 最后两行是以八进制和十六进制打印数字10

        int aint=10;
        float afloat=1.1;
        double adouble=2.2;
        char achar='a';
        char *str="string";
        printf("int aint=%d\n",aint);
        printf("float afloat=%f\n",afloat);
        printf("double adouble=%f\n",adouble);
        printf("char achar=%c\n",achar);
        printf("char *str=%s\n",str);
     
        printf("octal int aint=%o(8)\n",aint);
        printf("hex int aint=%x(16)\n",aint)
    

    windows gcc输出:

    577410c5-303b-4e00-b249-bf844ad06131.png

    设置输出宽度

    设置每个整数占10个位置, 默认为右对齐
    如果数字的长度比设置的宽度大, 那么会忽略我们设置的输出宽度

    int a=1,b=2,c=3,d=4;
    printf("%10d, %10d\n", a, b);
    printf("%10d, %10d\n", a, b);
    

    windows gcc输出:

    8fac1c0e-6aee-4e5f-b7ae-c8cbf2e92a87.png

    对齐,填充

    在上一个例子中, 设置宽度后默认是右对齐, 我们可以在10前加一个-(减号)设置为左对齐
    在上一个例子中, 当整数的长度少于我们设置的宽度时会用空格去填充,我们 可以在10前加一个0用数字0进行填充

    int a=1,b=2,c=3,d=4;
    printf("%-10d, %-10d\n", a, b);
    printf("%010d, %010d\n", a, b);
    

    windows gcc输出:

    742ddcdf-258e-44a9-a111-704e6f6ace22.png

    精度

    在时浮点数字后面跟的小数点很长,如pi=3.1415... , 但我们只想看小数点后2位或3位
    %.xf, 其中的x就是我们要保留的小数点后的位数,在x前面有个点号为精度标志

    double pi=3.1415926;
    printf("%.3f\n",pi);
    printf("%.6f\n",pi);
    

    windows gcc输出:

    4c8c9b4d-88b1-4639-b9f8-33ae50972368.png

    超长整数

    %lld 用于输出像long long这类超长的整数, 中间的两个ll是long long的缩写

    long long a=123456789012345;
    printf("%lld\n", a);
    
    0b6a9901-7719-4715-ae68-f4ae527b85a9.png

    小结

    printf的格式化工作: <b >%[对齐,填充,正负][输出宽度][精度][超长整数]基本类型</b>
    中括号括着的表示可有可无, 百分号和基本类型这两部分不能为空
    在[对齐,填充,正负]中的正负用+(加号)来表示, 如果整数为正就显示一个+,如果为负就显示一个-

    收尾例子: 显示浮点数前的正负号; 不显示浮点数的小数部分

    float a=10.01;
    printf("%+f\n",a);
    printf("%+.0f\n",a)
    
    14e52b87-1535-4b81-be09-d5f934a888ad.png

    相关文章

      网友评论

        本文标题:printf函数

        本文链接:https://www.haomeiwen.com/subject/sraadttx.html