scanf()函數
#它用於從標準輸入(鍵盤)讀取輸入(字符,字符串,數字資料)。
它用於讀取輸入,直到遇到空格,換行符或檔案結束(EOF)。
例如,請參考以下程式碼:
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); scanf("%s", str); printf("you entered: %s\n", str); return 0; }
這裡的輸入將由使用者提供,輸出如下:
输入: Geeks for Geeks 输出: Geeks 输入: Computer science 输出: Computer
gets()函數
它用於從標準輸入(鍵盤)讀取輸入。它用於讀取輸入,直到遇到換行符或檔案結束(EOF)。
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); gets(str); printf("you entered : %s\n", str); return 0; }
這裡輸入將由使用者提供如下
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
它們之間的主要差異是:
scanf()讀取輸入,直到遇到空格,換行符或檔案結束(EOF),而gets()讀取輸入,直到遇到換行符或檔案結束(EOF),gets()在遇到空格時不會停止讀取輸入而是將空格作為字串。 scanf可以讀取不同資料類型的多個值,而gets()只能取得字串資料。
差異可以表格形式顯示如下:
#SCANF() | GETS() |
當scanf()用於讀取字串輸入時,它會在遇到空格,換行符或檔案結束時停止讀取 | 當gets()用於讀取取輸入時,它會在遇到換行符號或End Of File時停止讀取輸入。 當它將空格視為字串時,它不會停止讀取遇到空格的輸入。 |
它用於讀取任何資料類型的輸入 | 它僅用於字串輸入。 |
如何使用scanf()讀取使用者的完整句子
實際上我們可以使用scanf()來讀取整個字串。例如,我們可以在scanf()中使用%[^ \ n] s來讀取整個字串。
#include <stdio.h> int main() { char str[20]; printf("Enter something\n"); // Here \n indicates that take the input // until newline is encountered scanf("%[^\n]s", str); printf("%s", str); return 0; }
上面的程式碼讀取字串,直到它遇到換行符。
範例:
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
相關推薦:《C教學》
本篇文章就是關於C中scanf()和gets()之間的差別介紹,希望對需要的朋友有幫助!
以上是C中scanf()和gets()之間的差異(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!