嵌入式學習筆記:c語言輸(shu)入輸(shu)出函(han)數基礎總結
時間(jian):2018-09-04 來源(yuan):未知
很多人(ren)對C語言輸(shu)入輸(shu)出函數總是學不會,那你(ni)是對語言輸(shu)入輸(shu)出的基礎還是沒弄明白,在這里(li)總結了一些c語言輸(shu)入輸(shu)出基礎,學好基礎才(cai)能進(jin)行接(jie)下來的學習。
首(shou)先你就要知(zhi)道它(ta)里面符號的意思(si),這是(shi)學的重點:
標(biao)準格式化輸出函數(shu)
printf
#include
int printf(const char *format, ...);
參(can)數:格式控制串
輸出表
格式(shi)控制串(chuan):% 修飾(shi)符(fu) 格式(shi)控制符(fu)
格(ge)式(shi)控制符:
%d:打印有符號十(shi)進(jin)制整型的數(shu)
%o:打印八(ba)進制(zhi)
%x:十(shi)六進制
%u:無符號
%c:打(da)印單個字(zi)符
%s:打印字符串(chuan)
%f:打印浮(fu)點型(xing)數據(ju)
%e:打印(yin)指數形式(shi)浮點小數
%g:打(da)印(yin)e和f中較短的一種
%p:輸(shu)出元素的內存(cun)地址(zhi)
修飾符:
m:給(gei)輸出的結果m個字符空(kong)間,默認為右(you)對齊
-:將默(mo)認的右對齊改為左對齊
.n:保(bao)留小數點后(hou)n位
h:用于d,o,x前,指定輸入為short型整數
l: 如(ru)果(guo)修飾的(de)是(shi)d、o、x、u會自動轉化為long型,如(ru)果(guo)修飾的(de)是(shi)
g、f、e會(hui)轉化為
double類型(xing)
#:在八進制和十六進制數前顯示前導0,0x *:抑制符(fu),指定輸入(ru)項讀入(ru)后不賦(fu)給(gei)變(bian)量(liang)
轉義字符:
\b 退格(BS),將當前位置移到(dao)前一列
\n 換行(xing)(xing)(xing)(LF),將當前位(wei)置(zhi)移到(dao)下(xia)一(yi)(yi)(yi)行(xing)(xing)(xing)開頭 \t 水平制表(biao)(biao)(HT)(跳到(dao)下(xia)一(yi)(yi)(yi)個(ge)TAB位(wei)置(zhi)) \r 回車(CR),將當前位(wei)置(zhi)移到(dao)本(ben)行(xing)(xing)(xing)開頭 \ " 代表(biao)(biao)一(yi)(yi)(yi)個(ge)雙引號字符(fu)(fu) \\ 代表(biao)(biao)一(yi)(yi)(yi)個(ge)反(fan)斜線(xian)字符(fu)(fu)
標準格式化輸入(ru)函數
scanf
#include
int scanf(const char *format, ...);
格式控制串
地址表:
取地(di)址符:&
返回值:正確輸入的數據個(ge)數
分(fen)隔(ge)符:空(kong)格(ge) 回車 tab
修飾符(fu):* 抑制(zhi)符(fu)
字符輸出函數
putchar
#include
int putchar(int c);
功(gong)能(neng):將單個字符打印到屏幕上、
返回(hui)值:返回(hui)該字符(fu)對應的ACSII值
字符輸入函數
getchar
#include
int getchar(void);
返(fan)回值(zhi):獲取字符對(dui)應的(de)ASCII值(zhi)(整型值(zhi))
字符(fu)串輸出函(han)數
puts
int puts(const char *s);
功能:打(da)印字符串,自帶換行
注意(yi): puts 和 printf的%s都(dou)是遇到(dao)‘\0’截止
字符串輸入函(han)數
gets
char *gets(char *s);
功能(neng):從鍵盤上獲取一串(chuan)字符串(chuan)
a、使用%c讀(du)取字符(fu)的時(shi)候,空格,回車,tab建都(dou)作為有(you)效字符(fu)被讀(du)入
//scanf("%c%c", &m, &n);
b、在格(ge)式(shi)控制之間使用空格(ge),可(ke)以屏蔽掉空格(ge),回車,tab
//scanf("%c %c", &m, &n);
c、使用getchar()讀取一(yi)個垃圾字符(fu)
/*scanf("%c", &m);
getchar();
scanf("%c", &n);*/
d、使用(yong)%*c指定(ding)讀(du)取(qu)到的字符不作為(wei)有效字符
scanf("%c%*c%*c%c",&m,&n);
應(ying)嚴格(ge)按照scanf的格(ge)式輸(shu)入,如上(shang)面的表達式忽略了兩個字(zi)(zi)符(fu),則輸(shu)入時應(ying)輸(shu)入兩個無(wu)效字(zi)(zi)符(fu)
看(kan)了上(shang)面的(de)C語言知識(shi)點那你還需(xu)要知道c庫
在實際的程(cheng)序(xu)(xu)設計(ji)中,經常需要使用到(dao)一些基本功(gong)能(neng),例(li)如輸(shu)入(ru)輸(shu)出,各種常用計(ji)算(suan)等。但是(shi)這(zhe)些功(gong)能(neng)對于(yu)一般程(cheng)序(xu)(xu)員來說難以自行開發(fa),卻要經常用到(dao),因此編(bian)譯系統通常將這(zhe)些功(gong)能(neng)預先編(bian)制好,以程(cheng)序(xu)(xu)庫的形式提供(gong)給程(cheng)序(xu)(xu)員使用
標(biao)準C庫里(li)提(ti)供了很多的(de)函(han)數,只要在程序里(li)包含(han)了C庫中對應(ying)的(de)頭文件(函(han)數聲明),就可以使用這些(xie)庫函(han)數了。

