C語言中的EOF


本文是自己通過各種查閱以后的個人理解,如果有理解的地方還請大家多多指正!

在做小算法題目的時候經常用到EOF,模模糊糊用但不清楚到底是什么意思。后來遇到了問題進行了仔細了解。

EOF是End Of File,也就是指“文件”的結尾,這里的文件可以指文件(file),也可以指輸入(stdin)。

可以說它是一個特殊字符,也就是 -1。

當對文件進行讀取的時候,到了文件的結尾的時候,系統會返回一個信號,也就是EOF(-1),進行判斷是否到了文件的結尾。

當對輸入進行判斷的時候,如下例,那么怎樣結束while循環呢?

while(scanf("%d %d",&a,&b)!=EOF){
   printf("輸入的數字是%d %d\n",a,b);
}

 

  首先:要講一下scanfscanf是有返回值的,返回值取決於讀到的變量的個數。

          如果 int num = scanf("%d %d",&a,&b);

          輸入:1 0  則 num = 2;

          輸入:1 a  則num = 1; 因為a不是十進制整數,隨意不能成功讀取

          輸入:a 1  則num = 0; 因為a不能讀取后面的1也無法成功讀取

   那么,問題來了!無論你輸入對與錯返回值都是大於等於0的數,怎么會出現EOF(-1)呢~?

   其實,在Windows中 Ctrl+Z 為EOF,在Linux中 Ctrl+D 為EOF,這樣就可以結束循環了。

 

   

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM