scanf 函數(shù)用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),語法為 int scanf(const char *format, …)。它需要一個格式字符串,其中包含占位符 (%c, %d, %f, %s),用于指定讀取數(shù)據(jù)的格式和數(shù)量。scanf 函數(shù)的返回值表示成功讀取的變量個數(shù),成功時 >=1,失敗時返回 0,出錯時返回 -1。
scanf 函數(shù)的用法
定義
scanf 函數(shù)用于從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)讀取格式化數(shù)據(jù)。
語法
int scanf(const char *format, ...);
參數(shù)
- format: 指向格式字符串的指針,指定要讀取數(shù)據(jù)的格式和數(shù)量。
- …: 可變數(shù)量的參數(shù),分別與格式字符串中的占位符對應(yīng),用來存儲讀取到的數(shù)據(jù)。
格式字符串
格式字符串是一個包含占位符的字符串,指示 scanf 函數(shù)應(yīng)該如何讀取數(shù)據(jù)。常用的占位符包括:
- %c: 讀取一個字符
- %d: 讀取一個十進(jìn)制整數(shù)
- %f: 讀取一個浮點數(shù)
- %s: 讀取一個字符串
使用示例
int age; char name[20]; scanf("%d %s", &age, name);
在上面的示例中,scanf 函數(shù)從標(biāo)準(zhǔn)輸入中讀取一個整數(shù)(用 %d 占位符指定)存儲在變量 age 中,然后讀取一個字符串(用 %s 占位符指定)存儲在字符數(shù)組 name 中。
返回值
scanf 函數(shù)返回成功讀取的變量個數(shù)。如果讀取成功,則返回 >=1。如果因為格式錯誤或遇到文件結(jié)尾而導(dǎo)致讀取失敗,則返回 0。-1 表示出錯。
注意
使用 scanf 函數(shù)時需要注意以下幾點:
- 格式字符串中占位符的數(shù)量必須與要讀取的參數(shù)數(shù)量相匹配。
- 變量的類型必須與格式字符串中指定的格式對應(yīng)。
- 標(biāo)準(zhǔn)輸入中必須有足夠的數(shù)據(jù)滿足格式字符串的要求。