您好,登錄后才能下訂單哦!
小編給大家分享一下C中scanf()和gets()之間的區(qū)別是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
scanf()函數(shù)
它用于從標準輸入(鍵盤)讀取輸入(字符,字符串,數(shù)字數(shù)據(jù))。
它用于讀取輸入,直到遇到空格,換行符或文件結束(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()函數(shù)
它用于從標準輸入(鍵盤)讀取輸入。它用于讀取輸入,直到遇到換行符或文件結束(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
它們之間的主要區(qū)別是:
scanf()讀取輸入,直到遇到空格,換行符或文件結束(EOF),而gets()讀取輸入,直到遇到換行符或文件結束(EOF),gets()在遇到空格時不會停止讀取輸入而是將空格作為字符串。scanf可以讀取不同數(shù)據(jù)類型的多個值,而gets()只能獲取字符串數(shù)據(jù)。
差異可以表格形式顯示如下:
SCANF() | GETS() |
當scanf()用于讀取字符串輸入時,它會在遇到空格,換行符或文件結束時停止讀取 | 當gets()用于讀取輸入時,它會在遇到換行符或End Of File時停止讀取輸入。 當它將空格視為字符串時,它不會停止讀取遇到空格的輸入。 |
它用于讀取任何數(shù)據(jù)類型的輸入 | 它僅用于字符串輸入。 |
如何使用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()之間的區(qū)別是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。