2 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
犯堆棧溢出等的安全檢查。
傳統(tǒng)C函數(shù),scanf()按現(xiàn)代觀點(diǎn),就屬于不安全函數(shù)。。
所以MS 定義了scanf_s()函數(shù),建議用它代替scanf
這只是個(gè)警告信息,你初學(xué)C語言,建議忽略它。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
從鍵盤輸入的每個(gè)字符都會(huì)送到輸入緩沖流中,scanf函數(shù)從輸入緩沖流中依次讀數(shù)據(jù),第一次輸入的回車符也在輸入緩沖流中,而scanf函數(shù)遇到空格或換行符就結(jié)束,所以第二次scanf時(shí)還是從輸入緩沖流中的回車符開始讀,讀到即結(jié)束,然后執(zhí)行下一個(gè)語句。
解決方法:
在每個(gè)scanf語句后加一句getchar();
因?yàn)間etchar()函數(shù)不會(huì)忽略回車符和空格符,也就是說getchar()函數(shù)會(huì)將回車符或空格符讀出,然后讀下一個(gè)字符。這樣下一次scanf()時(shí)就是從回車符的下一個(gè)字符開始讀了。
- 2 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報(bào)