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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論