C語言scanf格式化字串中 c的使用建議

2021-10-09 01:47:39 字數 606 閱讀 1180

scanf

("%c"

,&a)

;

上面**在讀取的時候不會自動跳過空白字元(空格、tab、換行),所以在輸入的時候容易踩坑。

scanf

(" %c"

,&a)

;

scanf格式化字串中的空格會匹配任意多個空白字元,所以上面只會讀取緩衝區中的第乙個非空白字元,而跳過任何空白字元,即使緩衝區中乙個空白字元都沒有,也不會因此出錯。所以推薦在明確不需要讀入空白字元的時候使用這種方式,這樣可以防止出錯讀到了前一行的換行符

scanf

("%c "

,&a)

;

強烈反對在scanf後面輸入空格

前面說到scanf中的空格會匹配任意多個空白字元,所以scanf最後的這個空格會導致scanf盡可能貪婪的不斷讀取空白字元,直到遇到非空白字元或者eof。

所以上面的**會導致輸入乙個字元並按下回車之後,程式依然卡在了scanf那裡,直到再輸入乙個非空白字元並按下回車之後scanf才會讀取結束,程式繼續執行。

scanf 格式化字串詳解

scanf格式控制的完整格式 m l或h 格式字元 格式字元與printf函式中的使用方式相同,以 d o x c s f e,無 u格式 g格式。可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如 scanf 3d 3d a,b 輸入 123456 系統自動將123賦給a,456賦給b。後的 ...

scanf 格式化字串詳解

scanf格式控制的完整格式 m l或h 格式字元 格式字元與printf函式中的使用方式相同,以 d o x c s f e,無 u格式 g格式。可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如 scanf 3d 3d a,b 輸入 123456 系統自動將123賦給a,456賦給b。後的 ...

C語言格式化字串

在turbo c中格式字串的一般形式為 標誌 輸出最小寬度 精度 長度 型別 其中方括號中的項為可選項。各項的意義介紹如下 1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示 表示輸出型別的格式字元 格式字元意義 d 以十進位制形式輸出帶符號整數 正數不輸出符號 o 以八進位制形式輸出無...