while(scanf("%d",&n)!=EOF)

scanf的返回值由後面的參數決定緩存

scanf("%d%d", &a, &b);函數

若是a和b都被成功讀入,那麼scanf的返回值就是2指針

若是隻有a被成功讀入,返回值爲1進程

若是a和b都未被成功讀入,返回值爲0get

若是遇到錯誤或遇到end of file,返回值爲EOF。io

且返回值爲int型.後臺

驗證:file

        sign=scanf("%d %d",&a,&b);
        printf("%d %d\n",a,b);
        printf("%d\n",sign);di


 

可是輸入「a X」的時候 輸出的sign爲0文件

何時輸出EOF? 在stdio.h中宏定義爲-1

按照說明,scanf函數只有在第一個參數爲NULL(空指針)的狀況下,纔可能返回EOF,不然,返回成功格式化並賦值的參數個數(>=0)。

End Of File,在電腦的術語縮寫一般爲 EOF,在做業系統決定資料源無更多的資料可讀取。

 

int c; while ((c = getchar()) != EOF) { 
putchar(c); } 可是,標準輸入與文件不同,沒法事先知道輸入的長度,必須手動輸入一個字符,表示到達EOF。 Linux中,在新的一行的開頭,按下Ctrl-D,就表明EOF(若是在一行的中間按下Ctrl-D,則表示輸出"標準輸入"的緩存區,因此這時必須按兩次Ctrl-D);Windows中,Ctrl-Z表示EOF。(順便提一句,Linux中按下Ctrl-Z,表示將該進程中斷,在後臺掛起,用fg命令能夠從新切回到前臺;按下Ctrl-C表示終止該進程。) 那麼,若是真的想輸入Ctrl-D怎麼辦?這時必須先按下Ctrl-V,而後就能夠輸入Ctrl-D,系統就不會認爲這是EOF信號。Ctrl-V表示按"字面含義"解讀下一個輸入,要是想按"字面含義"輸入Ctrl-V,連續輸入兩次就好了
EOF 意思就是 end of file!!!! 你 按按CTRL+D試試
相關文章
相關標籤/搜索