C/C++ scanf 用法與範例

本篇 ShengYu 介紹 C/C++ scanf 用法與範例,在C/C++編程中,經常需要從使用者輸入中取得資料。而scanf函式正是這樣一種工具,它允許我們以格式化的方式從標準輸入流(通常是鍵盤)中讀取資料。本文將深入探討scanf函式的基本用法、各種用法以及一些注意事項,scanf 詳細用法範例請繼續往下閱讀。

C 語言要從標準輸入(stdin)讀取格式化輸入可以使用 scanf,要使用 scanf 的話需要引入的標頭檔 <stdio.h>,如果要使用 C++ 的標頭檔則是引入 <cstdio>
scanf 函式原型為

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

const char *format:這是一個格式字串,用於指定 scanf 函式應該如何解析輸入。它包含了要讀取的資料類型和格式的指示符,如 %d 表示一個整數,%f 表示一個浮點數,%s 表示一個字串等等。格式字串中的空格用於指示 scanf 在輸入中跳過空格、\t定位字元、換行字元等空白字元。

...:這是一個變參列表,用於接收 scanf 函式讀取的輸入值。根據格式字串中指定的格式,scanf 函式將從標準輸入中讀取資料並根據各個格式指示符進行解析,將解析的值儲存到相對應的變數中。注意,這些變數必須與格式字串中的格式指示符相對應,否則 scanf 函式的行為將是未定義的,可能會導致錯誤。

scanf 函式透過解析格式字串從標準輸入中讀取資料,並將其儲存到指定的變數中。

C/C++ scanf 基本用法

C/C++ scanf函式的基本用法如下,例如,要從使用者輸入中讀取一個整數,可以使用以下程式碼:

1
2
int num;
scanf("%d", &num);

這將提示使用者輸入一個整數,然後將輸入的值儲存在num變數中。需要注意的是,%d是格式說明符,用於指示scanf函式應該讀取一個整數。在格式字串中,%d表示要讀取一個十進位整數。如果輸入的內容不是一個整數,則會導致錯誤或未定義的行為。

另外,每個scanf呼叫後面應該緊跟一個檢查輸入是否成功的程式碼。例如,可以使用scanf的回傳值來檢查是否成功讀取了一個值:

1
2
3
4
5
if (scanf("%d", &num) == 1) {
// 輸入成功
} else {
// 輸入失敗
}

這樣可以確保程式在無效輸入時能夠正確處理。

C/C++ scanf 各種用法與範例

scanf函式不僅可以讀取整數,還可以讀取其他類型的資料,如浮點數、字元和字串。以下是一些常見的用法和範例:

1. scanf 讀取浮點數(float

1
2
float num;
scanf("%f", &num);

這將從標準輸入中讀取一個浮點數,並將其儲存在num變數中。

2. scanf 讀取浮點數(double

1
2
double num;
scanf("%lf", &num);

這將從標準輸入中讀取一個浮點數,並將其儲存在num變數中。需要注意的是,對於double類型,格式說明符為%lf

3. scanf 讀取長整型(long

1
2
long num;
scanf("%ld", &num);

這將從標準輸入中讀取一個長整型數,並將其儲存在num變數中。需要注意的是,對於long類型,格式說明符為%ld

4. scanf 讀取字元

1
2
char ch;
scanf("%c", &ch);

這將從標準輸入中讀取一個字元,並將其儲存在ch變數中。

5. scanf 讀取字串

1
2
char str[100];
scanf("%s", str);

這將從標準輸入中讀取一個字串,並將其儲存在str陣列中。需要注意的是,%s格式說明符會讀取字串直到遇到空白字元(空格、定位字元、換行字元等)為止。

6. scanf 讀取多個值

1
2
int a, b;
scanf("%d %d", &a, &b);

這將從標準輸入中讀取兩個整數,並將它們儲存在ab變數中。多個格式說明符可以用空格、定位字元或換行字元分隔。

scanf Format 參數說明

在 C 語言中,格式指示符(Format specifiers)是用於指定輸入和輸出的格式的特殊字元序列。當你使用像 printfscanf 這樣的函式時,你需要使用格式指示符來告訴函式應該如何解釋你提供的資料。

一些常見的格式指示符包括:

  • %d:用於打印或讀取整數。
  • %f:用於打印或讀取浮點數。
  • %s:用於打印或讀取字串。
  • %c:用於打印或讀取單個字元。
  • %lf:用於打印或讀取 double 型資料。
  • %x:用於打印或讀取十六進位整數。

這些格式指示符告訴函式在處理輸入時應該使用的資料類型,以及在輸出時應該以什麼格式顯示資料。當你使用 printf 時,你提供的內容將根據這些格式指示符進行格式化並輸出到終端或檔案。而當你使用 scanf 時,你提供的格式字串中的格式指示符將告訴函式如何解析標準輸入中的資料。

C/C++ scanf 注意事項

在使用scanf函式時,需要注意以下幾點:

  • 格式說明符與輸入資料類型必須對應,否則會導致錯誤或未定義的行為。
  • 每個scanf呼叫後都應該檢查輸入是否成功,以確保程式能夠正確處理無效輸入。
  • scanf函式對輸入的資料沒有類型檢查,因此輸入錯誤類型的資料可能導致程式出錯或產生未定義的行為。

結語

透過本文的介紹,讀者應該對scanf函式有了更深入的了解。scanf函式作為C++中用於從標準輸入讀取格式化資料的重要工具,可以幫助我們更方便地與使用者進行互動,從而編寫出更靈活、強大的程式。然而,在使用scanf函式時需要謹慎,避免出現錯誤。希望本文對讀者在C++編程中使用scanf函式有所幫助。

以上就是 C/C++ scanf 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
C/C++ strcpy 用法與範例
C/C++ strcmp 用法與範例
C/C++ strcat 用法與範例
C/C++ strstr 用法與範例
C/C++ strtok 用法與範例