溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C中scanf()和gets()之間的區(qū)別是什么

發(fā)布時間:2020-09-09 11:27:59 來源:億速云 閱讀:176 作者:小新 欄目:編程語言

小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI