getchar() putch()的使用

getchar()  putchar()

    getchar()獲取從鍵盤輸入的單個字符  putchar()將單個字符發送至屏幕
    雖然getchar()獲取單個字符,但除非按下Enter 鍵 否則控制不會返回程序
    getchar() 函數命令C程序將輸入放入緩衝區(buffer),按下Enter鍵後 緩衝區的內容以每次一個字符釋放


    所以 1.沒有按下Enter鍵就可以按下Backspace 鍵修正已鍵入的錯誤字符
             2.如果不處理按下的Enter鍵 , Enter鍵將留在緩衝區


例如:
    first=getchar();
    last=getchar();


    如果要鍵入GT   則G應該存入變量first中 T應該存入last中  然而並非如此 
    第一個getchar()在用戶按下Enter之前不會結束 按下 G後 ,G 留在緩衝區 只有按下Enter ,G 纔會離開緩衝區進入程序 -- 但此時Enter 鍵卻留在了緩衝區  所以第二個getchar()會將Enter 鍵(\n)發送給last   需要額外的getchar()才能繼續讀取T


修復方案:
    first=getchar();
    x=getchar();//x:儲存鍵入過程中的換行符 不需要處理變量x
    last=getchar();
    x=getchar();


甚至不用將換行符儲存在變量中
    first=getchar();
    getchar();//getchar()單獨佔一行  獲取字符後什麼都不做  即丟棄換行符
    last=getchar();
    getchar();


也可以輸入兩個大寫字母后再按下Enter鍵
    first=getchar();//G儲存在變量first中
    last=getchar();//T儲存在變量last中
    getchar(); 


getch()  putch()
 
getch()獲取無緩區的單個字符 無需按Enter 按下鍵的同時 立即獲取相應內容
    first=getch();
    last=getch();


getchar()不會在屏幕上顯示鍵入內容 必須與putch()成對使用
    first=getch();
    putch(first);
    last=getch();
    putch(last);


getchar()  getch() 對比:
    1,getch()比getchar()快 getch()不需要Enter鍵的按下就能直接獲取鍵入的內容
    2. getchar()沒有按下Enter鍵就可以按下Backspace 鍵修正已鍵入的錯誤字符,而getch()無緩衝區 自然不能使用
 

發佈了52 篇原創文章 · 獲贊 10 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章