1.標(biāo)準(zhǔn)輸出printf
printf是C語言的標(biāo)準(zhǔn)輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。
函數(shù)原型如下:
#include
int printf(const char *format, ...);
printf函數(shù)使用格式為:printf(“<格式化字符串>”,參量表);
printf()是C語言標(biāo)準(zhǔn)庫函數(shù),在stdio.h中定義。輸出的字符串除了可以使用字母、數(shù)字、空格和一些數(shù)字符號以外,還可以使用一些轉(zhuǎn)義字符表示特殊的含義。
字符串常量原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式控制字符串和各輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。其中格式控制字符串是以%開頭的字符串,在%后面跟有各種格式控制符,以說明輸出數(shù)據(jù)的類型、寬度、精度等。
- 格式控制符說明
控制符 |
說明 |
%c |
輸出一個字符(char) |
%d |
輸出十進(jìn)制整數(shù)(int) |
%hhd |
輸出一個字節(jié)的整數(shù)(char) |
%hd |
輸出兩個字節(jié)的整數(shù)(short) |
%ld |
輸出長整型(long) |
%md |
m指輸出字段寬度,若數(shù)據(jù)位數(shù)小于m,則左邊以空格補(bǔ)齊,若大于m,則按實際位數(shù)輸出。輸出的數(shù)據(jù)按照右邊對齊,一共占m位,所有類型都支持指定輸出字段寬度。在%后面加上-可實現(xiàn)數(shù)據(jù)左對齊。 |
%u |
輸出無符號整數(shù)(unsigned int)。輸出無符號時也可以用%d,此時會將無符號轉(zhuǎn)換為有符號輸出。 |
%lu |
輸出無符號長整數(shù)(unsigned long) |
%f |
輸出浮點型(float),以小數(shù)形式輸出。不指定字段寬度,由系統(tǒng)自動指定,整數(shù)部分全部輸出,小數(shù)部分輸出6位,超過6位的四舍五入。 |
%.mf |
輸出實數(shù)時小數(shù)點后保留 m 位,注意m前面有個點。比如: %.2f。 |
%lf |
(long double 使用%lf 輸出) |
%o或%#o |
八進(jìn)制輸出,%#o會自動顯示前綴 |
%x或%X或%#x |
十六進(jìn)制輸出 |
%s |
字符串輸出 |
%p |
輸出地址 |
%% |
輸出字符% |
%t |
輸出水平制表符 |
2.標(biāo)準(zhǔn)輸入printf
scanf()是C語言中的一個輸入函數(shù),與printf函數(shù)一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數(shù)時要加上#include 。
#include
int scanf(const char *format, ...);
scanf()是從標(biāo)準(zhǔn)輸入(標(biāo)準(zhǔn)輸入設(shè)備,一般指向鍵盤)中讀內(nèi)容的通用子函數(shù);可以通過說明的格式讀入多個字符,并保存在對應(yīng)地址的變量中。
在使用scanf函數(shù)時,主要注意一下讀取字符類型數(shù)據(jù)問題;scanf是從標(biāo)準(zhǔn)輸入緩沖區(qū)中讀取輸入的數(shù)據(jù),而%c的字符輸入格式會接收回車字符和空格字符,在輸入第一個 scanf時輸入字符后按回車結(jié)束,輸入緩沖中保存了這個回車符,遇到第二個scanf時,它自動把這個回車符賦給了后面的%c。而如果第二個scanf的輸入格式不是%c時,由于格式不匹配,這個回車符會被自動忽略, 所以在連續(xù)輸入兩個%c的格式時會出現(xiàn)后面%c獲取不到正確。
輸入示例:
#include
intmain(intargc,char**argv)
{
inta;
charb;
floatc;
scanf("%d %c%f",&a,&b,&c);//%d和%c中間有空格
printf("a=%dn",a);
printf("b=%cn",b);
printf("c=%fn",c);
}
[root@xsw c_2020]# ./a.out
輸入整型、字符型、浮點型:12 a 12.34 #輸入時也必須在12和a之間加空格
a=12
b=a
c=12.340000
3.輸出函數(shù)名和行號
#include
int main()
{
/*
't' --制表符(相當(dāng)于TAB鍵)
__FILE__ 文件名
__FUNCTION__(或__func__) 函數(shù)名
__LINE__ 行號
__DATE__ 日期顯示
__TIME__ 時間顯示
*/
printf("[%s] %s line:%dn",__FILE__,__func__,__LINE__);
printf("time:%s--%sn",__DATE__,__TIME__);
}
4.printf輸出字體顏色
在有些時候我們希望通過printf輸出的內(nèi)容以不同的顏色在終端展示,這樣在調(diào)試過程看起來更加直觀。
printf輸出顏色時的控制命令:/033[A1;A2;A3m
/033[為固定開頭;
m為固定結(jié)尾;
A1表示屬性;
A2表示字體顏色;
A3表示背景顏色;
- A1參數(shù)
屬性代碼 |
功能 |
0 |
重置所有屬性 |
1 |
高亮/加粗 |
2 |
暗淡 |
4 |
下劃線 |
5 |
閃爍 |
8 |
反轉(zhuǎn) |
8 |
隱藏 |
- A2屬性
屬性代碼 |
功能 |
30 |
黑色 |
31 |
紅色 |
32 |
綠色 |
33 |
黃色 |
34 |
藍(lán)色 |
35 |
品紅 |
36 |
青色 |
37 |
白色 |
- A3屬性
屬性代碼 |
功能 |
40 |
黑色 |
41 |
紅色 |
42 |
綠色 |
43 |
黃色 |
44 |
藍(lán)色 |
45 |
品紅 |
46 |
青色 |
47 |
白色 |
- 示例
#include
int main()
{
printf("?33[1;;41m%s?33[0mn", "Hello World!");//字體加粗,背景為紅色
//加下劃線,字體顏色為黑色,背景為白色
printf("?33[4;30;47m%s?33[0mn", "Hello World!");
printf("?33[5m%s?33[0mn", "Hello World!");//字體閃爍
printf("?33[;34m%s?33[0mn", "Hello World!");//設(shè)置字體為綠色
printf("?33[;;42m%s?33[0mn", "Hello World!");//設(shè)置設(shè)置背景為綠色
}
-
輸入輸出
+關(guān)注
關(guān)注
0文章
42瀏覽量
10748 -
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136683 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62569 -
Printf
+關(guān)注
關(guān)注
0文章
83瀏覽量
13649
發(fā)布評論請先 登錄
相關(guān)推薦
評論