printf/scanf

printf和scanf函數(shù)為重要的文字交互函數(shù),printf用于輸出字符串,scanf用于掃描用戶輸入,是終端界面最常用的兩個(gè)函數(shù)。
這兩個(gè)函數(shù)都包含在stdio.h標(biāo)準(zhǔn)輸入輸出頭文件中,在使用中需要包含。
在學(xué)習(xí)這兩個(gè)函數(shù)前,我們先要了解一下字符串。

1、字符串的認(rèn)識(shí)

在c語(yǔ)言中沒有字符串的概念,我們所接觸到的基本數(shù)據(jù)類型中只有int、char、Bool、float、double等類型,而字符串是由一系列的字符所組成,為了表示字符串,需要用到字符數(shù)組,在一個(gè)字符數(shù)組中,前面的元素為char類型(各占8個(gè)bit),最后一位存儲(chǔ)一個(gè)結(jié)束標(biāo)志\0,這樣以來,程序就可以通過這個(gè)字符數(shù)組的首地址(數(shù)組名標(biāo)識(shí)符)和結(jié)束標(biāo)志(\0)從內(nèi)存中讀取該字符串。

2、占位符的認(rèn)識(shí)

占位符是一種特殊的運(yùn)算,用于將一些其他數(shù)據(jù)類型的數(shù)據(jù)轉(zhuǎn)換為特殊的字符格式,嵌入到某個(gè)字符串中。有如下幾種:

占位符 作用
%a,%A 讀入一個(gè)浮點(diǎn)值(僅C99有效)
%c 讀入一個(gè)字符
%d 讀入十進(jìn)制整數(shù)
%i 讀入十進(jìn)制,八進(jìn)制,十六進(jìn)制整數(shù)
%o 讀入八進(jìn)制整數(shù)
%x,%X 讀入十六進(jìn)制整數(shù)
%s 讀入一個(gè)字符串,遇空格、制表符或換行符結(jié)束。
%f,%F,%e,%E,%g,%G 用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。
%p 讀入一個(gè)指針
%u 讀入一個(gè)無(wú)符號(hào)十進(jìn)制整數(shù)
%n 至此已讀入值的等價(jià)字符數(shù)
%[] 掃描字符集合
%% 讀%符號(hào)

3、printf函數(shù)

該函數(shù)接受一個(gè)字符串作為參數(shù),其作用是將傳入的字符串打印在終端窗口上。
字符串可以包含占位符。
舉例如下:

#include <stdio.h>  
  
//程序入口(主函數(shù))  
int main()  
{  
    int count=100;  
    char grade='B';  
    float height=1.78f;  
    double pi=3.141592654;  
      
    //輸出整數(shù),%d也可  
    printf("數(shù)量為 %i \n",count);  
      
    //輸出字符  
    printf("等級(jí)為 %c \n",grade);  
      
    //輸出兩位小數(shù),默認(rèn)6位  
    printf("身高為 %.2f 米\n",height);  
      
    //輸出多位小數(shù),.10表示總共10位數(shù)  
    printf("圓周率 %.10g \n",pi);  
      
    return 0;  
} 

在該例子中,定義了int、char、float、double等數(shù)據(jù)類型,他們可以通過占位符嵌入到字符串中,字符串中的\n為制表位,用于換行輸出。
輸出結(jié)果如下:

數(shù)量為 100   
等級(jí)為 B   
身高為 1.78 米  
圓周率 3.141592654 

4、scanf函數(shù)

scanf函數(shù)用于獲取用戶輸入數(shù)據(jù),并存儲(chǔ)到內(nèi)存變量中。該函數(shù)需要接受兩種參數(shù),一種是占位字串,用于表示輸入數(shù)據(jù)格式,一種是內(nèi)存單元的地址,用于存儲(chǔ)輸入的數(shù)據(jù)。
為此我們需要定義相應(yīng)的變量用于儲(chǔ)存用戶輸入

int a;  
int b; 

然后調(diào)用函數(shù)scanf,并設(shè)置合適的輸入格式:

scanf("%d;%d",&a,&b);  

該代碼中兩個(gè)占位符之間用“;”隔開,表示接收的數(shù)據(jù)之間要用“;”隔開,缺省的話,可以用空格表示,后面的參數(shù)前面加&表示變量地址。
通過以上步驟即可將用戶輸入的數(shù)據(jù)保存到內(nèi)存單元中。

5、其他

1、scanf要求用戶輸入數(shù)據(jù),不會(huì)有任何提示,為了交互性的考慮,需要用printf函數(shù)進(jìn)行必要的提示;
2、用戶輸入的數(shù)據(jù)不一定復(fù)合格式,要設(shè)置必要的檢查環(huán)節(jié),確保用戶輸入正確的數(shù)據(jù);
3、printf多用于程序的調(diào)試,要合理運(yùn)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第1章 第一個(gè)C程序第2章 C語(yǔ)言基礎(chǔ)第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設(shè)計(jì)第5章 條件結(jié)構(gòu)程序設(shè)計(jì)第6章...
    小獅子365閱讀 10,874評(píng)論 3 71
  • 版權(quán)聲明:本文為 gfson 原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。注:作者水平有限,文中如有不恰當(dāng)之處,請(qǐng)予以指正,萬(wàn)分感謝...
    gfson閱讀 3,495評(píng)論 0 6
  • 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 4,272評(píng)論 2 13
  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • 以上三款是雙層紗布被套,尺寸均有200/230 230/230 ,同尺寸的棉被芯薄厚公司都有,但是咱們家沒到貨呢!...
    卜來閱讀 249評(píng)論 0 0

友情鏈接更多精彩內(nèi)容