首頁  >  文章  >  後端開發  >  C中scanf()和gets()之間的差異(程式碼範例)

C中scanf()和gets()之間的差異(程式碼範例)

藏色散人
藏色散人原創
2019-03-25 15:00:332940瀏覽

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教學

本篇文章就是關於C中scanf()和gets()之間的差別介紹,希望對需要的朋友有幫助!

以上是C中scanf()和gets()之間的差異(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn