從頭認識C getchar()的返回值

2021-06-27 07:02:03 字數 384 閱讀 2266

getchar()函式原型為int  getchar(void)

getchar()函式出錯會返回eof。

如下例子:

char ch;

while((ch = getchar()) != eof)

eof需要的位數比字元型值所能提供的位數要多,這也是getchar返回乙個整形值而不是字元值的原因。

然而,把getchar的返回值首先儲存於ch中將導致它被截短。然後這個被截短的值被提公升為整形並與eof

進行比較。當這段存在錯誤的**在使用有符號字符集的機器上執行時,如果讀取了乙個值為\377的位元組時,

迴圈將會終止,因為這個值截短再提公升後與eof相等。當這段**在使用無符號字符集的機器上執行時,這個

迴圈將永遠不會終止。

從頭認識C scanf

int scanf const char format,scanf 函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。注意事項 1 對於字串陣列或字串指標變數,由於陣列名和指標變數名本身就是位址,因此使用scanf 函式時,不需要在它們前面加上 操作符。2 可以在格式化字串中的 各格式化規...

從頭認識java 1 5 繼承(2)

接著上一章節,我們來繼續介紹繼承。1.子類呼叫方法時的查詢方法的順序 package com.ray.ch01 public class animal public void sleep package com.ray.ch01 public class bird extends animal pu...

從頭認識C 左值和右值

c c 語言中可以放在賦值符號左邊的變數,即具有對應的可以由使用者訪問的儲存單元,並且能夠由使用者去改變其值的量。左值表示儲存在計算機記憶體的物件,而不是常量或計算的結果。或者說左值是代表乙個記憶體位址值,並且通過這個記憶體位址,就可以對記憶體進行讀並且寫 主要是能寫 操作 這也就是為什麼左值可以被...