溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

格式輸入函數(shù)

發(fā)布時間:2020-08-03 18:11:05 來源:網(wǎng)絡 閱讀:639 作者:大咖M 欄目:編程語言

格式輸入函數(shù),就像寫漢字一樣,寫出什么樣的字體,就會看到什么樣的字體。
在C語言中,格式輸入使用scanf()函數(shù)。該函數(shù)的功能是指定固定的格式,并且按照指定的格式接收用戶在鍵盤上輸入的數(shù)據(jù),最后將數(shù)據(jù)存儲在指定的變量中。
scanf()函數(shù)的一般格式如下:

scanf(格式控制,地址列表) 

通過scanf()函數(shù)的一般格式可以看出,參數(shù)位置中的格式控制與printf()函數(shù)相同。如“%d”表示十進制的整型,“%c”表示單字符。而在地址列表中,此處應該給出用來接收數(shù)據(jù)變量的地址。如得到一個整型數(shù)據(jù)的操作語句如下:

scanf("%d",&iInt);                              /*得到一個整型數(shù)據(jù)*/ 

在這一行代碼中,“&”符號表示取iInt變量的地址,因此不用關心變量的地址具體是多少,只要在代碼中變量的標識符前加“&”,就表示取變量的地址。
注意:編寫程序時,在scanf()函數(shù)參數(shù)的地址列表處,一定要使用變量的地址,而不是變量的標識符,否則編譯器會提示出現(xiàn)錯誤。
如表5.3所示列出了scanf()函數(shù)中常用的格式字符。
表5.3 scanf()函數(shù)的格式字符

格式輸入函數(shù)
說明:格式字符“%s”用來輸入字符串。將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結束。字符串以串結束標志“\0”作為最后一個字符。

實例07 計算圓的周長和球的體積

在本實例中,輸入圓的半徑,計算圓的周長和球的體積。利用scanf()函數(shù)得到用戶輸入的圓的半徑,因為scanf()函數(shù)只能用于輸入操作,所以需要使用顯示函數(shù)將計算的信息顯示在屏幕上。具體代碼如下:

01  #include<stdio.h>
02  
03  int main()
04  {
05          float Pie=3.14f;                            /*定義圓周率*/
06          float fArea;                                /*定義變量*/
07          float fRadius;
08          puts("Enter the radius:");
09          scanf("%f",&fRadius);                       /*輸入圓的半徑*/
10          fArea=2*fRadius*Pie;                        /*計算圓的周長*/
11          printf("The perimeter is: %.2f\n",fArea);   /*輸出計算的結果*/
12          fArea=4/3*(fRadius*fRadius*fRadius*Pie);    /*計算球的體積*/
13          printf("The volume is: %.2f\n",fArea);      /*輸出計算的結果*/
14          return 0;                               /*程序結束*/
15  }

運行程序,顯示結果如圖5.10所示。
格式輸入函數(shù)
圖5.10 面積和體積結果

從該實例代碼和運行結果可以看出:
(1)為了能接收用戶輸入的數(shù)據(jù),在程序代碼中定義了一個變量fRadius。因為scanf()函數(shù)只能接收用戶的數(shù)據(jù),而不能顯示信息,所以先使用puts函數(shù)輸出一段字符表示信息提示。
(2)調(diào)用scanf()格式輸入函數(shù),在函數(shù)參數(shù)中可以看到,在格式控制的位置使用雙引號將格式字符包括,“%f”表示輸入的是float浮點類型數(shù)據(jù)。在參數(shù)中的地址列表位置,使用“&”符號表示變量的地址。此時變量fRadius已經(jīng)得到了用戶輸入的數(shù)據(jù)。
(3)利用表達式計算圓的周長和球的體積,調(diào)用printf()函數(shù)將變量進行輸出。
注意:printf()函數(shù)使用的是變量的標識符,而不是變量的地址。scanf()函數(shù)使用的是變量的地址,而不是標識符。
說明:在輸入多個數(shù)據(jù)時,scanf()函數(shù)使用空白字符分隔輸入的數(shù)據(jù),這些空白字符包括空格、換行、制表符(tab)。例如在本程序中,使用換行作為空白字符。

練一練:
輸入身高和體重,計算身體質(zhì)量指數(shù)(BMI),計算公式 BMI = 體重/身高2。
實例07只輸入一個數(shù)據(jù),scanf()函數(shù)也可以輸入多個數(shù)據(jù),初學者在設計格式輸入時,最好把每個格式控制符分隔開,例如下面的實例08。

實例08 輸入x和y兩個數(shù)值,并輸出交換后的值

在本實例中,利用scanf()函數(shù)輸入x和y兩個數(shù)值。交換后調(diào)用printf()函數(shù)輸出。具體代碼如下:

01  #include <stdio.h>                              /*包含頭文件*/
02  int main()                                      /*主函數(shù)main*/
03  {
04      int x,y;                                    /*定義變量*/
05      printf("please  enter two numbers:\n");     /*提示信息*/
06      scanf("x=%d,y=%d",&x,&y);                   /*輸入x,y數(shù)據(jù)*/
07      x=y-x;                                      /*交換x,y的值*/
08      y=y-x;
09      x=y+x;   
10      printf("x=%d,y=%d\n",x,y);                  /*輸出交換后的數(shù)據(jù)*/
11      return 0;                                   /*程序結束*/
12  }

運行程序,顯示結果如圖5.11所示。
格式輸入函數(shù)
圖5.11 交換數(shù)值
從該實例代碼和運行結果可以看出:
(1)使用printf()函數(shù)顯示一串字符,提示輸入的數(shù)據(jù)兩個數(shù)據(jù),調(diào)用scanf()函數(shù)使變量x和y得到用戶輸入的數(shù)據(jù)。
(2)第7~第9行代碼實現(xiàn)x和y兩個數(shù)的交換。最后利用printf()函數(shù)將輸入得到的數(shù)據(jù)進行輸出。
練一練:
輸入大寫字母,同時輸出對應的小寫字母。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI