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