getch,gets,scanf,getchar區別

    在C語言中,gets和scanf用來記錄字符串的輸入,而getch和getchar用來接收字符輸入,東西多了就是記不住,免得每次都要去網上翻翻,不如在自己還能記得住的時候做個筆記。

    下面只簡單記錄,詳細的可以去網上找:

    scanf:它遇到空格、回車和Tab鍵都會認爲輸入結束,所有它不能接收空格。

    而gets則只認爲回車符纔是輸入結束。

    相同的地方是:在字符串接受結束後都自動加'\0'。

 

  1. #include <stdio.h> 
  2.  
  3. main() 
  4.  
  5.  
  6. char ch1[10],ch2[10],c1,c2; 
  7.  
  8. scanf("%s",ch1); 
  9.  
  10. c1=getchar(); 
  11.  
  12. gets(ch2); 
  13.  
  14. c2=getchar(); 
  15.  

依次鍵入asdfg回車,asdfg回車,則ch1="asdfg\0",c1='\n',ch2="asdfg\0",c2需輸入。

scanf :當遇到回車,空格和tab鍵會自動在字符串後面添加'\0',但是回車,空格和tab鍵仍會留在輸入的緩衝區中。下次如果調用會直接先拿緩衝區中的數據。

其實也可以清空,編譯器提供了清空緩衝區函數,fflush(stdin);

gets:可接受回車鍵之前輸入的所有字符,並用'\n'替代 '\0'.回車鍵不會留在輸入緩衝區中

     其實就是gets函數在讀取字符串時將刪除結尾的換行符。

II: 

    gets可以用來讀取字符串輸入,scanf可以讀取任何類型的。

 

III:

    getchar:它有一個int型的返回值.當程序調用getchar時.程序就等着用戶按鍵.用戶輸入的字符被存放在鍵盤緩衝區中.直到用戶按回車爲止(回車字符也放在緩衝區中).

    getch:只要用戶按一個鍵,getch就立刻返回, getch返回值是用戶輸入的ASCII碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵後程序繼續運行.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章