嵌入式C程序設(shè)計(jì) scanf函數(shù)介紹(講義)_第1頁(yè)
嵌入式C程序設(shè)計(jì) scanf函數(shù)介紹(講義)_第2頁(yè)
嵌入式C程序設(shè)計(jì) scanf函數(shù)介紹(講義)_第3頁(yè)
嵌入式C程序設(shè)計(jì) scanf函數(shù)介紹(講義)_第4頁(yè)
嵌入式C程序設(shè)計(jì) scanf函數(shù)介紹(講義)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

scanf函數(shù)介紹與格式輸出函數(shù)printf相對(duì)應(yīng)的是格式輸入函數(shù)scanf。該函數(shù)的功能是指定固定的格式,并且按照指定的格式接收用戶在鍵盤上輸入的數(shù)據(jù),最后將數(shù)據(jù)存儲(chǔ)在指定的變量中。scanf函數(shù)的一般格式如下:scanfscanf(格式控制,地址列表);通過scanf函數(shù)的一般格式可以看出,參數(shù)位置中的格式控制與printf函數(shù)相同。如“%d”表示十進(jìn)制的整型,“%c”表示單字符。地址列表中用于給出接收數(shù)據(jù)變量的地址。例如,得到一個(gè)整型數(shù)據(jù)的代碼如下:scanfscanf(“%d”,&iInt); /*得到一個(gè)整型數(shù)據(jù)*/在上面的代碼中,“&”符號(hào)表示取int變量的地址。用戶不用關(guān)心變量的地址具體是多少,只要在變量的標(biāo)識(shí)符前加“&”,就可以表示存取變量的地址。注意:編寫程序時(shí),在scanf函數(shù)參數(shù)的地址列表處,一定要使用變量的地址,而不是變量的標(biāo)識(shí)符,否則編譯器會(huì)提示出現(xiàn)錯(cuò)誤。表1中列出了scanf函數(shù)中常用的格式字符。表1scanf函數(shù)的格式字符格式字符功能說明d,i用來輸入有符號(hào)的十進(jìn)制整數(shù)u用來輸入無符號(hào)的十進(jìn)制整數(shù)o用來輸入無符號(hào)的八進(jìn)制整數(shù)x,X用來輸入無符號(hào)的十六進(jìn)制整數(shù)(大小寫作用是相同的)c用來輸入單個(gè)字符s用來輸入字符串f用來輸入實(shí)型,可以用小數(shù)形式或指數(shù)形式輸入e,E,g,G與f作用相同,e與f、g之間可以相互替換(大小寫作用相同)說明:格式字符“%s”用來輸入字符串。將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志“\0”作為最后一個(gè)字符。【例1】使用scanf格式輸入函數(shù)得到用戶輸入的數(shù)據(jù)。#include<stdio.h>intmain#include<stdio.h>intmain(){intiInt1,iInt2; /*定義兩個(gè)整型變量*/puts(“Pleaseentertwonumbers:”); /*通過puts函數(shù)輸出提示信息的字符串*/scanf(“%d%d”,&iInt1,&iInt2); /*通過scanf函數(shù)得到輸入的數(shù)據(jù)*/printf(“Thefirstis:%d\n”,iInt1); /*顯示第一個(gè)輸入的數(shù)據(jù)*/printf(“Thesecondis:%d\n”.iInt2); /*顯示第二個(gè)輸入的數(shù)據(jù)*/return0;}(1)為了能接收用戶輸入的整型數(shù)據(jù),定義了兩個(gè)整型變量iInt1和iInt2。(2)因?yàn)閟canf函數(shù)只能接收用戶的數(shù)據(jù),而不能顯示信息,所以先使用puts函數(shù)輸出一段字符表示信息提示。puts函數(shù)在輸出字符串之后會(huì)自動(dòng)進(jìn)行換行,這樣就可以省去使用換行符。(3)調(diào)用scanf格式輸入函數(shù),在函數(shù)參數(shù)中可以看到,在格式控制的位置使用雙引號(hào)將格式字符包括,“%d”表示輸入的是十進(jìn)制的整數(shù)。在參數(shù)中的地址列表位置,使用“&”符號(hào)表示變量的地址。(4)此時(shí)變量iIntl和iInt2已經(jīng)得到了用戶輸入的數(shù)據(jù),調(diào)用printf函數(shù)將變量進(jìn)行輸出。這里要注意區(qū)分的是,printf函數(shù)使用的是變量的標(biāo)識(shí)符,而不是變量的地址。scanf函數(shù)使用的是變量的地址,而不是標(biāo)識(shí)符。說明:程序是怎樣將輸入的內(nèi)容分別保存到指定的兩個(gè)變量中的呢?原來scanf函數(shù)使用空白字符分隔輸入的數(shù)據(jù),這些空白字符包括空格、換行、制表符(tab)。例如在本程序中,使用換行作為空白字符。運(yùn)行程序,顯示效果如圖1所示。圖1使用scanf格式輸入函數(shù)得到用戶輸入的數(shù)據(jù)在printf函數(shù)中,附加格式用于更為具體的說明。相應(yīng)地,scanf函數(shù)中也有附加格式,用于更為具體的格式說明,如表2所示。表2scanf函數(shù)的附加格式字符功能說明l用于輸入長(zhǎng)整型數(shù)據(jù)(可用于“%ld”“%lo”“%lx”“%lu”)以及double型的數(shù)據(jù)(“%lf”或“%le”)h用于輸入短整型數(shù)據(jù)(可用于“%hd"“%ho”“%hx”)n(整數(shù))指定輸入數(shù)據(jù)所占的寬度*表示指定的輸入項(xiàng)在讀入后不賦給相應(yīng)的變量【例2】使用scanf函數(shù)的附加格式進(jìn)行格式輸入。在本實(shí)例中,依次使用scanf函數(shù)的附加格式進(jìn)行格式輸入,對(duì)比輸入前后的結(jié)果,觀察附加格式的效果。#include<stdio.h>#include<stdio.h>intmain(){longiLong; /*長(zhǎng)整型變量*/shortiShort; /*短整型變量*/intiNumber1=1; /*整型變量,為其賦值為1*/intiNumber2=2; /*整型變量,為其賦值為2*/charcChar[10]; /*定義字符數(shù)組變量*/printf(“Enterthelonginteger\n”); /*輸出信息提示*/scanf(“%ld”,&iLong); /*輸入長(zhǎng)整型數(shù)據(jù)*/printf(“Entertheshortinteger\n”); /*輸出信息提示*/scanf(“%hd”,&iShort); /*輸入短整型數(shù)據(jù)*/printf(“Enterthenumber:\n”); /*輸出信息提示*/scanf(“%d*%d”,&iNumber1,&iNumber2); /*輸入整型數(shù)據(jù)*/printf(“Enterthestringbutonlyshowthreecharacter\n”); /*輸出信息提示*/scanf(“%3s”,cChar); /*輸入字符串*/printf(“thelongintergeris:%ld\n”,iLong); /*顯示長(zhǎng)整型值*/printf(“theshortintergeris:%hd\n”,iShort); /*顯示短整型值*/printf(“theNumber1is:%d\n”,iNumber1); /*顯示整型iNumber1的值*/printf(“theNumber2is:%d\n”,iNumber2); /*顯示整型iNumber2的值*/printf(“thethreecharacterare:%s\n”,cChar); /*顯示字符串*/return0;}(1)為了scanf函數(shù)能接收數(shù)據(jù),在程序代碼中定義所使用的變量。為了演示不同格式說明的情況,定義的變量類型有長(zhǎng)整型、短整型和字符數(shù)組。(2)使用printf函數(shù)顯示一串字符,提示輸入的數(shù)據(jù)為長(zhǎng)整型,調(diào)用scanf函數(shù)使變量iLong得到用戶輸入的數(shù)據(jù)。在scanf函數(shù)的格式控制部分,使用附加格式字符l表示長(zhǎng)整型。(3)再使用printf函數(shù)顯示數(shù)據(jù)提示,提示輸入的數(shù)據(jù)為短整型。調(diào)用scanf函數(shù)時(shí),使用附加格式字符h表示短整型。(4)使用格式字符“*”的作用是表示指定的輸入項(xiàng)在讀入后不賦給相應(yīng)的變量,在代碼中分析這句話的含義就是,第一個(gè)“%d”是輸入iNumber1變量,第二個(gè)“%d”是輸入iNumber2變量,但是在第二個(gè)“%d”前有一個(gè)“*”附加格式說明字符,這樣第二個(gè)輸入的值被忽略,也就是說,iNumber2變量不保存輸入相應(yīng)的值。(5)“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論