爲了方便對不同類型的數、字符、字符串進行輸入、輸出操作C語言定義了各種不同的格式字符。這些格式字符都有一個共同的特點就是以%開始,在%後面加不同的字母或數字和字母的組合表達出不同的含義。在這裏整理總結了%d、%ld、%md、%s、%x、%X、%lx、%c、%o、%u、%p、%f、%lf、%.mf、%le等不同格式字符的含義講解及演示。如果文中有錯誤之處望指正,感激不盡!!!
一、C語言格式字符表
序號 | 字符 | 含義 |
---|---|---|
1 | %d | int (整形) |
2 | %ld | 按十進制有符號長型整數輸入或輸出 |
3 | %md | 其中m爲指定輸出寬度,用於輸出整形數 |
4 | %s | 用於輸出字符串 |
5 | %x | 十六進制形式輸出結果(字母小寫) |
6 | %X | 十六進制形式輸出結果(字母大寫) |
7 | %lx | 十六進制形式輸出結果(比%x和%X可以輸出更多) |
8 | %c | 單個字符的輸入或輸出 |
9 | %o | 以八進制數形式輸出整數 |
10 | %u | 十進制無符號整型數輸入或輸出 |
11 | %p | 讀取存儲地址 |
12 | %f | 單精度浮點型數據 |
13 | %lf | 雙精度浮點型數據 |
14 | %.mlf | 雙精度浮點型數據(其中m爲指定小數點後的位數) |
15 | %le | 使用科學計數法輸入輸出字符 |
二、各個格式字符演示
#include <stdio.h>
int main()
{
int a=1234567;
char b[]="hello,world!";
int c = -10086;
float d=12.3456;
printf("1 %%d型%d\n",a);
printf("2 %%ld型%ld\n",a);
printf("3 %%7d型%7d\n",a);
printf("4 %%s型%s\n",b);
printf("5 %%x型%x\n",a);
printf("6 %%X型%X\n",a);
printf("7 %%lx型%lx\n",a);
printf("8 %%c型%c\n",b);
printf("9 %%o型%o\n",a);
printf("10 %%u型%u\n",c);
printf("11 %%p型%p\n",a);
printf("12 %%f型%f\n",d);
printf("13 %%lf型%lf\n",d);
printf("14 %%.3f型%.3f\n",d);
printf("15 %%le型%le\n",d);
return 0;
}
運行結果
特別說明:
1. 表中第三種格式字符在輸出的時候如果長度小於m的大小則按照右對齊進行填充如果需要左對齊在前面加上負號即可。
2. 因爲科學表示法最終是使用小數形式表示,所以需要被科學表示法表示的變量應被定義爲float型。
3. 在使用%.mf的時候一定要注意只是在輸出的時候才引用,舉慄
#include <stdio.h>
int main()
{
float a;
printf("請輸入一個數字\n");
scanf("%f",&a);
printf("你輸入的是:%.2f",a);
return 0;
}
可以看到我們在scanf的地方格式還是%f,%.mf只是在輸出的時候進行四捨五入操作。
下面是錯誤示範
#include <stdio.h>
int main()
{
float a;
scanf("%.2f",&a);
printf("%.2f",a);
return 0;
}
參考資料
1.百度百科:格式字符