關鍵區別——scanf vs gets
函數是執行特定任務的一組語句。不需要在同一個程序中編寫所有語句,它可以被分成多個函數。在編程中,用戶可以定義自己的函數。編程語言也提供了一些函數。C語言提供了許多函數,因此程序員可以直接使用它們而不必從一開始就實現它們。C語言提供的兩個這樣的函數是scanf和gets。本文討論這兩個函數之間的區別。scanf和gets之間的關鍵區別在於,scanf在遇到空白、換行或文件結束(EOF)時結束接收輸入,而gets將空白視為輸入字符串的一部分,並在遇到newline或EOF時結束輸入。
目錄
1. 概述和主要區別
2. 什麼是scanf
3. 什麼是得到
4. scanf和gets之間的相似性
5. 並排比較-scanf和gets以表格形式顯示
6. 摘要
什麼是掃描(scanf)?
scanf函數可以從鍵盤讀取輸入並根據給定的格式說明符存儲它們。它讀取輸入,直到遇到空白、換行符或EOF。語法如下。
scanf(“格式字符串”,變量地址列表);
參考下面給出的例子來理解scanf。
根據上面的程序,從鍵盤得到的輸入是一個整數,所以格式說明符是%d,如果是字符值,格式說明符是%c,如果是浮點值,格式說明符是%f,接收到的輸入值應該存儲在number變量中。因此,變量號的地址被傳遞到scanf函數中。現在,number變量包含用戶從鍵盤上給定的值。最後,我們可以打印數字變量來檢查值。
也可以一次接收多個值。
接收到的輸入存儲在變量number1和number2中。可以使用printf檢查值。
什麼是得到(gets)?
獲取函數用於接收來自鍵盤的輸入,直到遇到換行符或EOF。空白被視為輸入的一部分。gets函數的語法如下。
gets(“存儲字符串的位置”);
如果在接收字符串時出錯,gets函數將返回空值。
參考下面的例子,
輸入由gets函數接收並存儲在變量word1中。如果程序員使用scanf而不是gets並輸入一個字符串,比如“helloworld”,scanf會將字符串作為兩個字符串來讀取,因為空格是空白的。但是gets會把它讀成一個字符串“hello world”。
掃描(scanf)和得到(gets)的共同點
- 它們都是C語言提供的函數。
- 兩者都應該包含頭文件stdio.h以使用這些函數。
- 兩者都可以用於從標準輸入獲取輸入。
掃描(scanf)和得到(gets)的區別
掃描vs gets | |
scanf是一個C函數,用於從標準輸入讀取輸入,直到遇到空白、換行符或EOF。 | gets是一個C函數,用於從標準輸入讀取輸入,直到遇到換行符或EOF。它將空白作為輸入的一部分。 |
語法 | |
scanf函數接受格式字符串和變量地址列表。e、 g.scanf(“%d”,&number); | gets函數接受變量的名稱來存儲接收到的值。E、 g.gets(名稱); |
靈活性 | |
scanf可以讀取不同數據類型的多個值。 | gets()將只獲取字符串數據。 |
總結 - 掃描(scanf) vs. 得到(gets)
scanf和gets是編程語言C提供的函數,用戶不需要從一開始就實現這些函數。他們可以直接在程序中使用它們。scanf和gets的區別在於,scanf在遇到空白、換行或文件結束(EOF)時結束接收輸入,gets將空白視為輸入字符串的一部分,並在遇到newline或EOF時結束輸入。使用scanf或gets取決於從標準輸入(大多數情況下是鍵盤)接收用戶輸入的方式。scanf比gets更靈活。
下載scanf vs gets的pdf版本
你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在這裡下載PDF版本scanf和gets的區別