第一章 C語言の第一節(jié) 必備Linux命令和C語言基礎(chǔ)
第一章 C語言の第二節(jié) 數(shù)據(jù)類型、常量、變量及運(yùn)算符
第一章 C語言の第三節(jié) 輸入輸出專題
本文章采用VMware Workstation Pro進(jìn)行嵌入式(Linux)系列學(xué)習(xí)
從零開始,重新學(xué)習(xí)(嵌入式相關(guān)內(nèi)容)并記錄知識(shí)點(diǎn)(涉及基礎(chǔ)c語言(數(shù)據(jù)結(jié)構(gòu))、linux編程、shell腳本、文件io、網(wǎng)絡(luò)編程)等),同時(shí)也是為了方便自身回顧,如有不對(duì)的地方請(qǐng)大佬多多指教,謝謝!->歡迎評(píng)論區(qū)留言
數(shù)據(jù)輸出(C語言無I/O語句,I/O操作由函數(shù)實(shí)現(xiàn))
#include
1.1 字符輸出函數(shù)1.2 格式輸出函數(shù)格式:putchar(c)
參數(shù):c為字符常量、變量或表達(dá)式
功能:把字符c輸出到顯示器上
返回值:正常,為顯示的代碼值
1.3 printf支持的格式字符格式:printf(“格式控制串”,輸出表)
功能:按指定格式向顯示器輸出數(shù)據(jù)
輸出表:要輸出的數(shù)據(jù)
格式控制串:包含兩種信息
格式說明:%[修飾符]格式字符,用于指定輸出格式
普通字符:原樣輸出
格式符 | 作用 |
---|---|
i,d | 十進(jìn)制整數(shù) |
x,X | 十六進(jìn)制無符號(hào)整數(shù) |
o | 八進(jìn)制無符號(hào)整數(shù) |
u | 無符號(hào)十進(jìn)制整數(shù) |
c | 單一字符 |
s | 字符串 |
e,E | 指數(shù)形式浮點(diǎn)小數(shù) |
f | 小數(shù)形式浮點(diǎn)小數(shù) |
g | e和f中較短一種 |
%% | 百分號(hào)本身 |
附加格式說明符
修飾符 | 功能 |
---|---|
m | 輸出數(shù)據(jù)域?qū)?,?shù)據(jù)長(zhǎng)度 |
.n | 對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入);對(duì)字符串,指定實(shí)際輸出位數(shù) |
- | 輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊) |
+ | 指定在有符號(hào)數(shù)的正數(shù)前顯示正號(hào)(+) |
0 | 輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填0 |
井號(hào)鍵(#) | 在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x |
l | 在d,o,x,u前,指定輸出精度為long型;在e,f,g前,指定輸出精度為double型 |
2.2 格式輸入函數(shù)格式:getchar()
功能:從鍵盤讀一字符
返回值:正常,返回讀取的代碼值;出錯(cuò)或結(jié)束鍵盤輸入,返回-1(ctrl+d)
2.3 scanf支持的格式字符格式:scanf(“格式控制串”,地址表)
功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定存儲(chǔ)單元中,并按回車鍵結(jié)束
返回值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)
地址表:變量的地址,常用取地址運(yùn)算符&
格式符 | 作用 |
---|---|
i,d | 十進(jìn)制整數(shù) |
x,X | 十六進(jìn)制無符號(hào)整數(shù) |
o | 八進(jìn)制無符號(hào)整數(shù) |
u | 無符號(hào)十進(jìn)制整數(shù) |
c | 單一字符 |
s | 字符串 |
e | 指數(shù)形式浮點(diǎn)小數(shù) |
f | 小數(shù)形式浮點(diǎn)小數(shù) |
scanf函數(shù)支持的格式說明符可以帶以下修飾符
修飾符 | 功能 |
---|---|
h | 用于d,o,x前,指定輸入為short型整數(shù) |
l | 用于d,o,x前,指定輸入為long型整數(shù);用于e,f前,指定輸入為double型實(shí)數(shù) |
m | 指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符結(jié)束 |
星號(hào)(*) | 抑制符,指定輸入項(xiàng)讀入后不賦給變量 |
3.輸入函數(shù)的垃圾處理及字符串的輸入輸出 3.1 如何處理輸入函數(shù)留下的垃圾注:
用“%c”格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸入
輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:①遇空格、TAB或回車;②遇非法輸入;③遇寬度結(jié)束
方法1:用getchar()清除
代碼驗(yàn)證
#includeint main(int argc, char *argv[])
{int x;
char ch;
scanf("%d", &x);
getchar();
ch = getchar();
printf("x = %d, ch = %d\n", x, ch);
return 0;
}
結(jié)果
5
x = 5, ch = 10
方法2:用格式串中空格或“%*c”來“吃掉”
代碼驗(yàn)證
#includeint main(int argc, char *argv[])
{int x;
char ch;
scanf("%d", &x);
scanf(" %c", &ch); // 或scanf("%*c%c", &ch);
printf("x = %d, ch = %d\n", x, ch);
return 0;
}
結(jié)果
5
a
x = 5, ch = 97
3.2 字符串輸入函數(shù)格式:char* gets(char *s)
功能:從鍵盤輸入一以回車結(jié)束的字符串放入
說明1:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組維數(shù)
說明2:與scanf函數(shù)不同,gets函數(shù)并不以空格作為字符串輸入結(jié)束的標(biāo)志
3.3 字符串輸出函數(shù)不安全的函數(shù)(容易導(dǎo)致棧錯(cuò)誤):stack smashing detected
格式:int puts(const char *s)
功能:向顯示器輸出字符串(輸出完,換行)
說明:字符數(shù)組必須以‘\0’結(jié)束
總結(jié)gcc a.c -lm(編譯時(shí)的鏈接選項(xiàng))
本章為嵌入式學(xué)習(xí)系列文章 第一章:C語言の第三節(jié) 輸入輸出專題
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享題目:嵌入式系列文章之第一章C語言の第三節(jié)輸入輸出專題-創(chuàng)新互聯(lián)
分享鏈接:http://muchs.cn/article8/ejjip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)建站、服務(wù)器托管、微信公眾號(hào)、品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容