putchar與getchar以及對緩衝區的理解

2021-06-21 23:00:32 字數 1300 閱讀 7138

getchar 由巨集實現:#define getchar() getc(stdin)。getchar有乙個int型的返回值.當程式呼叫getchar時.程式就等著使用者按鍵.使用者輸入的

字元被存放在鍵盤緩衝區中

.直到使用者按回車為止(回車字元也放在緩衝區中).當使用者鍵入回車之後,getchar才開始從stdin流中每次讀入乙個字元.getchar函式的返回值是使用者輸入的第乙個字元的ascⅱ碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵盤快取區中,等待後續

getchar

呼叫讀取

.也就是說,後續的

getchar

呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.(

putchar

也是和著差不多)。

函式名: putchar功 能: 在stdout上輸出字元

用 法: int putchar(int ch);

putchar函式(字元輸出函式)的作用是向終端輸出乙個字元。其一般形式為 putchar(c)

緩衝區的理解

當我們從鍵盤輸入字串的時候需要敲一下回車鍵才能夠將這個字串送入到緩衝區中,那麼敲入的這個回車鍵(\r)會被轉換為乙個換行符\n,這個換行符

\n也會被儲存在緩衝區中並且被當成乙個字元來計算!比如我們在鍵盤上敲下了123456這個字串,然後敲一下回車鍵(\r)將這個字串送入了緩衝區中,那麼此時緩衝區中的位元組個數是7 ,而不是6。

#include

int main()

{      char  c;

while(1) {

c=getchar();                   //輸入字元

if(c>='a'&& c<='v')          putchar(c+4);               //裝換

elseif(c>='w'&&c<='z')       putchar(c-22);

else if(c>='a' && c<='v')       putchar(c+4);

else if(c>='w'&&c<='z')        putchar(c-22);

else if(c==42)                break; //當輸入*時結束迴圈

else                       putchar(c);                   

return 0;

希望對大家有些幫助

putchar函式和getchar函式

c語言提供putchar函式,用於給終端輸出乙個字元 getchar函式,可以從終端接收使用者輸入的乙個字元。函式的定義如下 void putchar char c 函式說明 把字元c輸出到終端螢幕中。int getchar void 函式說明 從終端接收使用者的輸入,獲取乙個字元,通過函式的返回值...

用getchar和putchar輸入輸出字元

用getchar函式讀入兩個字元給c1,c2,然後用putchar函式輸出這兩個字元。include stdafx.h include using namespace std int tmain int argc,tchar argv 如果要輸出這兩個字元的ascii碼,應如何處理?include ...

c語言中的getchar 和putchar

getchar 和putchar 函式時字元輸入輸出函式,其返回值都是int 整型。getchar 從鍵盤上輸入乙個字元,函式的返回值是輸入的第乙個字元的ascii碼字元的ascii值,若出錯返回 1,且將使用者輸入的字元回顯到螢幕。注意 1 使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵...