從頭認識C scanf

2021-06-27 04:45:06 字數 745 閱讀 5918

int scanf(const char *format,...)

scanf()函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。

注意事項:

(1) 對於字串陣列或字串指標變數,由於陣列名和指標變數名本身就是位址,因此使用scanf()函式時,不需要在它們前面加上"&"操作符。

(2) 可以在格式化字串中的"%"各格式化規定符之間加入乙個整數,表示任何讀操作中的最大位數。

(3) scanf()函式中沒有精度控制。

(4) scanf中要求給出

變數位址,如給出變數名則會出錯

如 scanf("%d",a);是非法的,應改為scanf("%d",&a);才是合法的。

(5) 在輸入多個數值資料時,若格式控制串中沒有非

格式字元

作輸入資料之間的間隔,則可用空格,tab或回車作間隔。

c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。

(6) 在輸入

字元資料(%c)時,若格式控制串中無非

格式字元

,則認為所有輸入的字元均為有效字元。

「scanf()的格式控制串可以使用空白

字元或其它非空白字元,使用空白字元會使scanf()函式在讀操作中略去輸入中的零個或多個空白字元。」

當使用scanf函式時,如果遇到一些匪夷所思的問題,在scanf函式後正確使用fflush(stdin);,清空輸入緩衝區,可以解決很多問題

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

getchar 函式原型為int getchar void getchar 函式出錯會返回eof。如下例子 char ch while ch getchar eof eof需要的位數比字元型值所能提供的位數要多,這也是getchar返回乙個整形值而不是字元值的原因。然而,把getchar的返回值首先...

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