scanf格式化輸入的研究

2021-10-03 12:08:18 字數 1068 閱讀 3777

相關名詞:

格式控制符:因為計算機中所有的資料都是二進位制 0、1 **,所以輸入輸出的時候要用格式控制符告訴計算機以什麼形式將二進位制資料顯示出來或儲存進去。

1、兩個相鄰的格式控制符之間,不指定資料分隔符,則相應的兩個輸入資料之間,①至少用乙個空格分隔,②或者用tab分隔,③或者在乙個資料後,按回車,然後再輸入下乙個資料。因為scanf把空格回車作為終止符,終止符不會被儲存。有乙個例外,就是%c時,見第5個例子

/** 正確輸入12 36

或者12

36*/void scantest()

2、格式控制字串**現常規字元,務必原樣輸入。如果不原樣輸入,結果會變得不可控

/** 正確輸入<12:34>

*/void scantest()

3、格式控制字串指定了資料資料的域寬width時,即將讀取資料資料中相應的width位,但按照需要的位數賦值給相應的變數,多餘的被拋棄

/** 輸入12345

輸出12,34

沒有5,被丟棄了

*/void scantest()

4、格式控制字串中含有抑制字元「*」時,表示本輸入項對應的資料讀入後不賦值給相應的變數,這個變數的值由下乙個格式指示符輸入。例如

/** 輸入12345

輸出12,5

沒有34,被丟棄了

*/void scantest()

5、格式控制符%c輸入單個字元時,空格和轉義字元都作為有效字元被輸入。

/** 輸入 a回車b

輸出a

b回車被列印出來,所以回車了一行

*/void scantest()

6、輸入資料時,以下情況,系統認為資料輸入結束

①空格、tab、回車

②遇到輸入域寬度結束。例如「%3d」,只取三列

③遇到非法輸入。想要數字,他卻夾雜了字母

7、如果scanf要輸入多個資料項,遇到了非法字元現象,會影響後面的資料輸入

/** 輸入 12a34

輸出 12,-8939393....

不符合預期

*/void scantest()

scanf格式化輸入

scanf 函式的功能是從計算機預設的輸入裝置 一般指鍵盤 向計算機主機輸入資料。呼叫scanf 函式的一般格式如下 scanf 格式字串 輸入項位址表 例如 scanf d f i,f 其中,格式字串 可以包含三種型別的字元 格式指示符 空白字元 空格 跳格鍵 回車鍵 和非空白字元 又稱為普通字元...

scanf 格式化輸入

scanf 有種帶的格式化輸出方式 此格式控制符的基本格式為 scanfset includeint main 以下來自網路 scanfset 有兩種形式 一種是以非 字元開頭的 scanset 表示在讀入字串時將匹配所有在 scanfset 現的字元,遇到非scanfset 中的字元時輸入就結束 ...

scanf 函式的格式化輸入

函式原型 int scanf const char restrict format,跟printf 一樣,scanf 使用控制字串和引數列表。但和printf 的區別是,printf 函式使用變數名 變數和表示式 而scanf 函式使用指向變數的指標。scanf 函式所用的轉換說明字元與printf...