小編給大家分享一下C中scanf()和gets()之間的區別是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
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中scanf()和gets()之間的區別是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。