1、先scanf後getchar()
int2、兩個getchar()main()
執行結果如下:
這時候需要在ch=getchar()前面加getchar()接收回車
但是當使用gets()來接收arr的話就不需要接收回車
intmain()
執行結果如下:
這時候需要在ch1和ch2之間加乙個getchar()
為什麼需要用getchar()吸收回車?
在這裡需要說一下%d和%c(也就是getchar())的區別:使用%d時,會將空格、回車、tab當作分隔符,不會當作資料讀取使用;使用%c時會將所有的輸入內容全部作為資料輸入
所以當我們輸入乙個字元時,如果前面曾經有輸入的話就會將前面輸入的回車或者空格作為輸入資料
那麼除了使用以上兩種方法吸收回車外,還有其他方法嗎?
1)可以使用fflush(stdin);來清空輸入流中的內容,這樣輸入字元時緩衝區就沒有資料可以作為輸入了
2)可以使用while(getchar() != '\n');來接收垃圾字元,因為無論如何輸入,最終都是要敲回車的
C語言之getchar 用法
1 語法int getchar void 2 返回值 getchar函式的返回值是使用者輸入的第乙個字元的ascii碼,如出錯返回 1,且將使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar...
C語言 getchar 函式詳解
getchar 函式實際上是int getchar void 所以它返回的是ascii碼,所以只要是ascii碼表裡有的字元它都能讀取出來。在呼叫getchar 函式時,編譯器會依次讀取使用者鍵入快取區的乙個字元 注意這裡只讀取乙個字元,如果快取區有多個字元,那麼將會讀取上一次被讀取字元的下乙個字元...
c語言中的getchar 和putchar
getchar 和putchar 函式時字元輸入輸出函式,其返回值都是int 整型。getchar 從鍵盤上輸入乙個字元,函式的返回值是輸入的第乙個字元的ascii碼字元的ascii值,若出錯返回 1,且將使用者輸入的字元回顯到螢幕。注意 1 使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵...