您好,你的程式沒有任何問題,執行不了是因為你的VC6.0安裝出了問題,你可以到你工程目錄下去找Debug資料夾,裡面有個可執行程式,那就是生成的可執行程式,因為VC6.0實在是有點老,在WIn7上會出現各種問題,建議改用VS2010,這是最新的VC軟體,非常好用,以下是getchar的用法。
函式功能:
從stdio流中讀字元,相當於getc(stdin),它從標準輸入裡讀取下一個字元。
用法編輯
該函式宣告在stdio.h標頭檔案中,使用的時候要包含stdio.h標頭檔案。如:
#include<stdio.h>
int getchar(void);
詳情
getchar 由宏實現:#define getchar() getc(stdin)。getchar有一個int型的返回值.當程 序呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.直到使用者按回車為止(回車字元也放在緩衝區中).當用戶鍵入回車之後,getchar才開始從stdio流中每次讀入一個字元.getchar函式的返回值是使用者輸入的字元的ASCII碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.
getch與getchar異同
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待使用者按回車,只要使用者按一個鍵,getch就立刻返回,getch返回值是使用者輸入的ASCⅡ碼,出錯返回-1.輸入的字元不會回顯在螢幕上.getch函式常用於程式除錯中,在除錯時,在關鍵位置顯示有關的結果以待檢視,然後用getch函式暫停程式執行,當按任意鍵後程序繼續執行.getch()是非緩衝輸入函式,就是不能用getch()來接受緩衝區已存在的字元。如以下C++程式:
int i;while(cin>>i);cin.clear();getchar();
執行時如果輸入1 2 3 a時必須用getchar()才能在後面程式獲得正常輸入,即使先前已經恢復流了,此處用getch()是萬萬不行的。
getche()函式
另外補充個函式,getche(),這個函式與前兩上類似,功能也相近,都是輸入一個字元,返回值同樣是輸入字元的ASCII碼,但不同的是,此函式在輸入後立即從控制檯取字元,不以回車為結束(帶回顯)
程式舉例:
#include<stdio.h>#include<conio.h>intmain(void){intc;inta;a=getchar();printf("%c",a);while((c=getchar())!="\n")//c接收的值是輸入第一個字元後按下的回車換行符"\n",c是不會顯示的{printf("%c",c);}getchar();return0;}
注:可以利用getchar()函式讓程式除錯執行結束後等待程式設計者按下鍵盤才返回編輯介面,用法:在主函式結尾,return 0;之前加上getchar();即可
您好,你的程式沒有任何問題,執行不了是因為你的VC6.0安裝出了問題,你可以到你工程目錄下去找Debug資料夾,裡面有個可執行程式,那就是生成的可執行程式,因為VC6.0實在是有點老,在WIn7上會出現各種問題,建議改用VS2010,這是最新的VC軟體,非常好用,以下是getchar的用法。
函式功能:
從stdio流中讀字元,相當於getc(stdin),它從標準輸入裡讀取下一個字元。
用法編輯
該函式宣告在stdio.h標頭檔案中,使用的時候要包含stdio.h標頭檔案。如:
#include<stdio.h>
int getchar(void);
詳情
getchar 由宏實現:#define getchar() getc(stdin)。getchar有一個int型的返回值.當程 序呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.直到使用者按回車為止(回車字元也放在緩衝區中).當用戶鍵入回車之後,getchar才開始從stdio流中每次讀入一個字元.getchar函式的返回值是使用者輸入的字元的ASCII碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.
getch與getchar異同
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待使用者按回車,只要使用者按一個鍵,getch就立刻返回,getch返回值是使用者輸入的ASCⅡ碼,出錯返回-1.輸入的字元不會回顯在螢幕上.getch函式常用於程式除錯中,在除錯時,在關鍵位置顯示有關的結果以待檢視,然後用getch函式暫停程式執行,當按任意鍵後程序繼續執行.getch()是非緩衝輸入函式,就是不能用getch()來接受緩衝區已存在的字元。如以下C++程式:
int i;while(cin>>i);cin.clear();getchar();
執行時如果輸入1 2 3 a時必須用getchar()才能在後面程式獲得正常輸入,即使先前已經恢復流了,此處用getch()是萬萬不行的。
getche()函式
另外補充個函式,getche(),這個函式與前兩上類似,功能也相近,都是輸入一個字元,返回值同樣是輸入字元的ASCII碼,但不同的是,此函式在輸入後立即從控制檯取字元,不以回車為結束(帶回顯)
程式舉例:
#include<stdio.h>#include<conio.h>intmain(void){intc;inta;a=getchar();printf("%c",a);while((c=getchar())!="\n")//c接收的值是輸入第一個字元後按下的回車換行符"\n",c是不會顯示的{printf("%c",c);}getchar();return0;}
注:可以利用getchar()函式讓程式除錯執行結束後等待程式設計者按下鍵盤才返回編輯介面,用法:在主函式結尾,return 0;之前加上getchar();即可