一、scanf函數的返回值
scanf函數是C和C++中常用的輸入函數,它可以快速讀取控制台或文件中的數據。在使用scanf函數時,有一個非常重要的概念——返回值。scanf函數的返回值是成功匹配並賦值的輸入項的個數。因此,如果輸入的數據類型與格式化字元串不匹配,scanf函數將會失敗。
#include <cstdio> int main(){ int a,b; printf("請輸入兩個整數:\n"); int num = scanf("%d%d",&a,&b); printf("成功匹配並賦值的輸入項個數:%d\n",num); return 0; }
例如,在上面的代碼中,如果我們輸入了”3.14 abc”,那麼scanf函數將會失敗,並輸出0。
二、scanf函數的格式化字元串
scanf函數的格式化字元串決定了需要輸入的數據的類型和格式。下面介紹一些常用的格式化字元串:
- %d 整數
- %f 浮點數
- %c 字元
- %s 字元串
- %x 十六進位整數
在使用格式化字元串時,可以通過限定符指定變數的長度和類型。例如,%5d表示輸入長度不超過5的整數。
#include <cstdio> int main(){ int a; printf("請輸入一個長度不超過5的整數:\n"); scanf("%5d",&a); printf("你輸入的整數是:%d",a); return 0; }
在上述代碼中,%5d指示scanf函數讀取長度不超過5的整數。如果我們輸入了”123456″,那麼scanf函數只會讀取前5個字元。
三、scanf函數的其他用法
scanf函數還可以進行常規的輸入操作。例如,使用scanf(“%c”,&x)來讀取一個字元,使用scanf(“%s”,&str)來讀取一個字元串(不包含空格和換行符)。
除此之外,scanf函數還可以使用*號來跳過輸入或賦值。例如,使用scanf(“%*d”,&a)可以讀取一個整數,但是不將其賦值給變數a。
#include <cstdio> int main(){ char c; printf("請輸入一個任意字元:\n"); scanf("%c",&c); printf("你輸入的字元是:%c\n",c); scanf("%*d");//跳過一個整數輸入 char str[20]; printf("請輸入一個字元串:\n"); scanf("%s",str); printf("你輸入的字元串是:%s",str); return 0; }
在上述代碼中,我們使用scanf函數讀取了一個字元和一個字元串,並跳過了一個整數的輸入。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206052.html