一、整型家族的格式化打印形式
我們要記住signed ? 類型 完全等效與 單獨的類型
所以我們下面會用(signed)來表示可以省略不寫。
如果格式化輸出的并不是類型匹配的格式,會發(fā)生隱式類型轉(zhuǎn)換,
1. int類型
- (signed)int ? (有符號整型)———%d
- ? ?unsigned int ? ? (無符號的int類型)———%u
- ? ? size_t? ?(無符號的int類型)————%zu
- 單獨的unsigned (unsigned int 的縮寫)———— %u?
int a = 2;
unsigned int b = 3;
size_t c = 4;
unsigned d = 5;
printf("%d\n", a);
printf("%u\n", b);
printf("%zu\n", c);
printf("%u\n", d);
2. long類型
- unsigned(signed)long ? (有符號長整型)———%ld
- ? ?unsigned long ? ?(無符號的長類型)———%lu
long a = 2;
unsigned long b = 3;
printf("%ld\n", a);
printf("%lu\n", b);
3. long long類型
- (signed)long? long(有符號長長整型)———%lld
- ? ?unsigned long long ? ?(無符號的長類型)———%llu
long long a = 2;
unsigned long long b = 3;
printf("%lld\n", a);
printf("%llu\n", b);
4. short類型
- (signed)short ? (有符號短整型)———%hd
- ? ?unsigned short ? ?(無符號的長類型)———%hu
short a = 2;
unsigned short b = 3;
printf("%hd\n", a);
printf("%hu\n", b);
5. %md
- 以上類型若是想在printf和scanf中保留相關(guān)位數(shù)———%md?? ? ? ?
請看本篇文章:%md在printf語句和scanf語句中的區(qū)別-CSDN博客
6. 八進制格式化打印:
打印八進制數(shù):
????????不輸出前綴0———%o
????????輸出前綴0 ————%#o
八進制數(shù)例如:0123,0234,0345,03等前綴是0的數(shù)
若想自己定義變量為八進制數(shù)字:int x = 01234567; 0開頭,后面數(shù)字0~7之間;
int a = 0123;
printf("%o\n", a);
printf("%#o\n", a);
7. 十六進制格式化打印
打印十六進制形式
????????不輸出前綴0x———%x , %X
????????輸出前綴0x————%#x,%#X
十六進制數(shù)例如:0x11223344,0X11,0x221c等前綴是0x和0X的數(shù)
若想自己定義變量為八進制數(shù)字:int x = 0x123a; 0開頭,后面數(shù)字0~9,a~f之間
(a為10,f為15)
#include <stdio.h>
int main()
{
int x= 0x19adf;
printf("%#x\n", x);
printf("%x\n", x);
return 0;
}
? 8.?%i和%d的區(qū)別:? ?
????????在C語言中,%i和%d都是格式控制符,用于格式化輸出整數(shù)類型的變量。
????????%d ?用于輸出有符號的十進制整數(shù)。它會將整數(shù)按照十進制形式輸出,并且如果整數(shù)是負數(shù),則會輸出一個負號。
????????%i ?也用于輸出有符號的十進制整數(shù)。與%d相比,%i可以將八進制數(shù)字和十六進制數(shù)字轉(zhuǎn)換成十進制數(shù)字輸出。
二、浮點數(shù)float,double(浮點數(shù)只有有符號的類型)
- float(有符號的單精度浮點數(shù))———%f ? ? ?默認保留6位小數(shù)
?- double(有符號的雙精度浮點數(shù))———%lf ? ?默認保留15位小數(shù)
?- 在輸出中想保留n位小數(shù)———%.nf? ? 或者? ? %.nlf
#include <stdio.h>
int main()
{
float a = 1.2345;
printf("%.1f\n",a);
return 0;
}
這里表示輸出的結(jié)果保留一位小數(shù),也就是1.2
三、科學計數(shù)法 格式化打印
? ? 1. 科學計數(shù)法表示的浮點數(shù)(小寫字母)———
%e
? ? 2. 科學計數(shù)法表示的浮點數(shù)(大寫字母)———%E
double a = 100.23;
printf("%e\n", a);
printf("%E\n", a);
四、字符類型的格式化打印形式
1. 字符類型
- char———%c( 輸出單個字符 )
- char———%d(輸出字符對應的ASICC值)
char c = 'a';
printf("%c\n", c);
printf("%d\n", c);
2. 字符串類型
字符串類型———%s (輸出字符串)
printf是可以自動識別字符串類型的,所以也可以這樣打?。?/span>
printf("%s\n", "abcderf");
五、%ms
m代表的是在屏幕上輸出m個字符個數(shù)
m 前面沒有負號? 右對齊
m 前面有負號? 左對齊
m <= 字符串長度,打印整個字符串m > 字符串長度,不夠地方用空格填充
1. ?m < 字符串長度
#include <stdio.h>
int main()
{
printf("%5s,%s","computer","computer");
return 0;
}
如圖,我們是%5s,5是小于字符串長度的,所以打印整個字符串就OK啦
2. m > 字符串長度
#include <stdio.h>
int main()
{
printf("%15s,%s","computer","computer");
return 0;
}
這里是打印15個字符個數(shù),很明顯字符串長度小于15,不夠的就用空格填充
六、特殊打印格式
1. %p
打印地址———%p(16進制顯示)
int a = 100;
printf("%p\n", &a);
2. %n
%n 用來統(tǒng)計printf在%n之前打印的字符個數(shù);%n不會打印出內(nèi)容;
具體看這個博客:%n在C語言總的意思-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-763551.html
#include <stdio.h>
int main()
{
int b;
printf("helloworld %n12345\n", &b);
printf("%d\n", b);
return 0;
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-763551.html
到了這里,關(guān)于C語言printf格式化打印(%d、%md、%f、%c、%s、%o、%x、%p、%e、%E、%n等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!