getchar()和EOF
生活随笔
收集整理的這篇文章主要介紹了
getchar()和EOF
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(c=getchar())!=E0F
這個式子很熟悉,但一直都沒有去理解它的原理。所以今天在網上一頓搜索,基本理解了這些問題。
1.getchar()函數:
這個函數是以行為單位進行存儲的。停止的條件是接收到回車'\n'和結束符EOF。它的返回值有正負數,當有輸入時候一般返回正直,除非遇到停止的消息時候,才會返回-1,即EOF;
while((c = getchar()) != EOF){
putchar(c);}
在這里,getchar和putchar應該每次讀入和輸出一個字符,但是在終端上我們卻發現情況并非如此,而是等待輸入一行完成時才有輸出。造成這種情況的原因是由于輸入在停止前,操作系統的驅動不會通知getchar函數,控制權一直在getchar函數上,getchar函數這時處于阻塞狀態,直到停止符出現,控制權才會交給putchar函數,完成輸出。
2.EOF
EOF作為換行符,可以通知輸入ctl+D來實現EOF的輸入。在getchar函數中,通過這種操作可以結束它的阻塞。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的getchar()和EOF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法导论-概率发生器
- 下一篇: 简单?复杂?