當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 scanf()用法及代碼示例



描述

C庫函數int scanf(const char *format, ...)從標準輸入讀取格式化輸入。

聲明

以下是 scanf() 函數的聲明。

int scanf(const char *format, ...)

參數

  • format- 這是包含以下一項或多項的 C 字符串 -

    空白字符、非空白字符和格式說明符.格式說明符將類似於[=%[*][width][modifiers]type=]如下所述 -

不。 參數和描述
1

*

這是一個可選的起始星號,表示數據將從流中讀取但被忽略,即它沒有存儲在相應的參數中。

2

width

這指定了當前讀取操作中要讀取的最大字符數。

3

modifiers

指定與 int(在 d、i 和 n 的情況下)、unsigned int(在 o、u 和 x 的情況下)或 float(在 e、f 和 g 的情況下)不同的大小,用於由相應的附加參數:h:short int(對於 d、i 和 n),或 unsigned short int(對於 o、u 和 x) l:long int(對於 d、i 和 n),或 unsigned long int(對於 o、 u and x), or double (for e, f and g) L:long double (for e, f and g)

4

type

指定要讀取的數據類型以及預期讀取方式的字符。見下表。

fscanf 類型說明符

類型 合格輸入 參數類型
c 單個字符:讀取下一個字符。如果指定的寬度不為 1,則該函數讀取寬度字符並將它們存儲在作為參數傳遞的數組的連續位置中。最後沒有附加空字符。 字符 *
d 十進製整數:數字前麵可選地帶有 + 或 - 符號 整數 *
e, E, f, g, G 浮點數:包含小數點的十進製數,可以選擇前麵是 + 或 - 符號,後麵可以是 e 或 E 字符和一個十進製數。有效條目的兩個示例是 -732.103 和 7.12e4 漂浮 *
o 八進製整數: 整數 *
s 字符串。這將讀取後續字符,直到找到空格(空格字符被視為空白、換行符和製表符)。 字符 *
u 無符號十進製整數。 無符號整數 *
x, x 十六進製整數 整數 *
  • additional arguments- 根據格式字符串,函數可能需要一係列附加參數,每個參數包含一個要插入的值,而不是格式參數中指定的每個 %-tag(如果有)。這些參數的數量應該與期望值的 %-tags 的數量相同。

返回值

成功時,該函數返回成功讀取的參數列表的項目數。如果在讀取時發生讀取錯誤或到達文件末尾,則設置適當的指示符(feof 或 ferror),如果在任何數據可以成功讀取之前發生任何一種情況,則返回 EOF。

示例

下麵的例子展示了 scanf() 函數的用法。

#include <stdio.h>

int main () {
   char str1[20], str2[30];

   printf("Enter name:");
   scanf("%s", str1);

   printf("Enter your website name:");
   scanf("%s", str2);

   printf("Entered Name:%s\n", str1);
   printf("Entered Website:%s", str2);
   
   return(0);
}

讓我們編譯並運行上麵的程序,它將在交互模式下產生以下結果 -

Enter name:admin
Enter your website name:www.tutorialspoint.com

Entered Name:admin
Entered Website:www.tutorialspoint.com

相關用法


注:本文由純淨天空篩選整理自 C library function - scanf()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。