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 以八進位制形式輸出無...