Andy 胡

导航

C语言格式化%整理

以输出为例:

#include <stdio.h>
main() {
    printf("**进制******************************************************\n");
    int  n1=15;
    printf("二进制   : 无\n");// binary
    printf("八进制o  : %o\n", n1);// octal
    printf("十进制d  : %d\n", n1);// decimal
    printf("十六进制x: %x\n", n1);// hex
    printf("十六进制X: %X\n", n1);// 十六进制分大小

    printf("**整数******************************************************\n");
    // i有符号
    printf("d有符号  : %d\n", -1);
    printf("i有符号  : %i\n", -1);
    // u 无符号(unsigned)
    printf("u无符号: %u\n", 1);
    printf("u无符号: %u\n", -1);

    // 长短 (不必挣个长短,因为没有必要)
    printf("长整形ld: %ld\n", 2147483647);// 此电脑int和long都是4字节,看不出区别
    printf("短整形hd: %hd\n", 1);// 没什么用,注意l,都要加d

    printf("**浮点数******************************************************\n");
    // 用科学表计数法
    printf("e %e\n", 12.5);
    printf("E %E\n", 12.5);

    printf("**字符串******************************************************\n");
    printf("字符c %c\n", 'a');
    printf("字符串s %s\n", "abc");

    printf("**指针******************************************************\n");
    int i = 1;
    printf("指针p:%p\n", &i);
    printf("相当于X:0X%X\n",&i);

    printf("**补齐******************************************************\n");
    printf("5d: %5d\n", 12);// 右对齐
    printf("05: %05d\n", 12);
    printf(".5: %.5d\n", 12);//05等价于.5
    printf("-5: %-5d结束\n", 12);// 左对齐

    // 带点至少6位,点后必须3位
    printf("%06.3f\n",2.1);
    printf("%06.3f\n",98765.4321);
}

运行结果:

**进制******************************************************
二进制   : 无
八进制o  : 17
十进制d  : 15
十六进制x: f
十六进制X: F
**整数******************************************************
d有符号  : -1
i有符号  : -1
u无符号: 1
u无符号: 4294967295
长整形ld: 2147483647
短整形hd: 1
**浮点数******************************************************
e 1.250000e+001
E 1.250000E+001
**字符串******************************************************
字符c a
字符串s abc
**指针******************************************************
指针p:000000000022FE48
相当于X:0X22FE48
**补齐******************************************************
5d:    12
05: 00012
.5: 00012
-5: 12   结束
02.100
98765.432

浮点数输出(十分玄幻):

网上说法1:float用%f,double用%Lf,没有long double

网上说法2:long double用%Lf

Dev-C++实测,对于float和double,加不加l都可以,对于long double,都搞不定

#include <stdio.h>
main() {
    float f= 3.4E+38;
    double db = 1.7E+308;
    long double ldb = 1.1E+4932;

    printf("浮点数: %f\n", f);
    printf("浮点数: %lf\n", f);
    printf("********************************************************\n");
    printf("浮点数: %f\n", db);
    printf("浮点数: %lf\n", db);
    printf("********************************************************\n");
    printf("浮点数: %f\n", ldb);
    printf("浮点数: %lf\n", ldb);
}

 

posted on 2017-02-09 16:25  talkwah  阅读(384)  评论(0编辑  收藏  举报