C中scanf EOF的理解

2021-08-31 23:22:48 字數 602 閱讀 6637

遇到這個表示式:scanf("%d%d",&a,&b)!=eof;

如果a和b都被成功讀入,那麼上面表示式的結果為2;

如果只有乙個讀入,那麼上面表示式的結果為1;

如果a&&b都沒有讀入,那麼上面表示式的結果為0(若a沒有讀入,則直接放棄b的讀入);

如果遇到錯誤或者檔案結尾,那麼上面表示式的結果為eof,對應的有符號數時-1;

什麼時候輸出eof? 在stdio.h中 巨集定義為-1

按照說明,scanf函式只有在第乙個引數為null(空指標)的情況下,才可能返回eof,否則,返回成功格式化並賦值的引數個數(>=0)。

直接回車相當於第乙個引數為null;

while(~scanf("%d",&n))

如果輸入中的內容不能識別為整數,或者輸入內容不足,scanf返回0

while(scanf("%d",&n),n)在while括號裡是乙個逗號表示式。逗號表示式,它將兩式聯接起來,如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:(3+5,6+8)的值是14。

原文:

C 中this的理解

先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。用這個型別可以來宣告乙個變數,比如int x,myclass my等等。這樣就像變數x具有int型別一樣,變數my具有myclass型別。理解了這個,就好解釋this了,my裡的this 就是指向m...

C 中MethodInvoker的理解

以下引用自 c 使用methodinvoker解決跨執行緒訪問控制項 net 原則上禁止跨執行緒訪問控制項,因為這樣可能造成錯誤的發生,有一種方法是禁止編譯器對跨執行緒訪問作檢查,control.checkforillegalcrossthreadcalls false 可以實現訪問,但是出不出錯不...

C 中static的理解

c 中static的用法可以分為兩個大類 c風格的static的使用和c 風格的static的使用。一 c風格的static的使用 1 區域性靜態變數 c風格的區域性靜態變數是在某個函式中定義的static變數,該變數只會被初始化一次,一直存在到程式結束。與普通區域性變數的區別是,只會初始化一次,函...