位置:首頁 > 高級語言 > C語言標準庫 > scanf() - C語言庫函數

scanf() - C語言庫函數

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

聲明

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

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

參數

  • format -- 這是C的字符串,其中包含以下各項中的一個或多個:

    空白字符,非空白字符和格式說明。格式說明符如: [=%[*][width][modifiers]type=] 詳細說明如下:

參數 描述
* 這是一個可選的星號表示該數據是從流中被讀取的,但忽略,即,它不會存儲在相應的參數。
width 這指定在當前讀出操作被讀取的最大字符數
modifiers Specifies a size different from int (in the case of d, i and n), unsigned int (in the case of o, u and x) or float (in the case of e, f and g) for the data yiibaied by the corresponding additional argument: h : short int (for d, i and n), or unsigned short int (for o, u and x) l : long int (for d, i and n), or unsigned long int (for o, u and x), or double (for e, f and g) L : long double (for e, f and g)
type 的字符,指定將要讀取的數據的類型以及它是如何被讀取。請參閱下表。

fscanf類型說明:

類型 合格輸入 參數類型
c 單字符:讀取下一個字符。如果不同寬度從1被指定,函數讀取字符寬度,並將它們存儲在連續位置的數組作為參數傳遞。冇有空字符在末尾追加。 char *
d 十進製整數:號碼任意前麵有+或 - 號 int *
e,E,f,g,G 浮點十進製數的小數點,可選擇前麵+或 - 號,可以選擇後跟e或E字符和一個十進製數。兩個有效條目的示例是-732.103和7.12e4 float *
o 八進製整數 int *
s 一串字符。這將讀取後續字符,直到找到一個空格(空格字符被認為是空白,換行符和標簽)。 char *
u 無符號整數。 unsigned int *
x,X 十六進製整數 int *
  • additional arguments -- 根據格式字符串,函數可能會想到一係列的額外的參數,每個包含一個值,而不是插入的格式參數中指定的標記每個%標簽,如果有的話。應該有相同數量的%預期值的標簽的數量的這些參數的。

返回值

如果成功,寫入的字符的總數被返回,否則返回一個負數。

例子

下麵的例子演示了如何使用 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
", str1);
   printf("Entered Website:%s", str2);
   
   return(0);
}

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

Enter name: admin
Enter your website name: www.gitbook.net

Entered Name: admin
Entered Website: www.gitbook.net