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