getch()、getche()和getchar()函數 (轉)

getch()、getche()和getchar()函數

(1) getch()和getche()函數
 這兩個函數都是從鍵盤上讀入一個字符。其調用格式爲:
  getch();
  getche();
 兩者的區別是:getch()函數不將讀入的字符回顯在顯示屏幕上,而getche() 函數卻將讀入的字符回顯到顯示屏幕上。

      例1:
      #include"stdio.h"
      #include"conio.h"
      void main()
      {
           char c, ch;
           c=getch();      /*從鍵盤上讀入一個字符不回顯送給字符變量c*/
           putchar(c);     /*輸出該字符*/
           ch=getche();    /*從鍵盤上帶回顯的讀入一個字符送給字符變量ch*/
           putchar(ch);
      }

 利用回顯和不回顯的特點, 這兩個函數經常用於交互輸入的過程中完成暫停等功能。
      例2:
      #include"stdio.h"
      #include"conio.h"
      void main()
      {
           char s[20];
           printf("Name:");
           gets(s);
           printf("Press any key to continue...");
           getch();   /*等待輸入任一鍵*/
      }
  
(2) getchar()函數
 getchar()函數也是從鍵盤上讀入一個字符, 並帶回顯。它與前面兩個函數的區別在於: getchar()函數等待輸入直到按回車才結束,   回車前的所有輸入字符都會逐個顯示在屏幕上。但只有第一個字符作爲函數的返回值。

     例3:
      #include"stdio.h"
      #include"conio.h"
      void main()
      {
           char c;
           c=getchar();    /*從鍵盤讀入字符直到回車結束*/
           putchar(c);     /*顯示輸入的第一個字符*/
           getch();        /*等待按任一健*/
      }

      例4:
      #include"stdio.h"
      #include"conio.h"
      void main()
      {
           char c;
           while ((c=getchar())!='/n')    /*每個getchar()依次讀入一個字符*/
           printf("%c",c);     /*按照原樣輸出*/
           getch();        /*等待按任一健*/
      }


編程中,以防程序運行一閃即失,總是要在最後來一個“getch();”
 getch()和getche()需要"conio.h"

附:
getch     從鍵盤無回顯地讀一字符
調用格式       #include"stdio.h"
          int getch(void);
原型在    conio.h
說明      getch從鍵盤直接讀一個字符,不回顯到屏幕上。
返回值    getch返回從鍵盤所讀的字符。
可移植性 getch只適用於DOS

getchar   從stdin流中取字符
調用格式     #include"conio.h"
          int getchar(void);
原型在    stdio.h
說明      getchar是一個宏,用於返回指定的stdin輸入流的下一個字符,    它定義爲getc(stdin)。
返回值    調用成功時,getchar返回所讀的字符,它已被轉換爲無符號擴展的整形值。在遇到文件結束或出錯時,返回EOF。
可移植性 getchar適用於UNIX系統,在ANSI C中定義,與Kernighan和Ritchie的定義兼容

 

轉自:http://hi.baidu.com/%D7%AA%C5%EE/blog/item/15dcf3bfca978b0819d81ff9.html

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