2 回答

不負(fù)相思意
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個贊
因?yàn)槟惴浅S锌赡苊枯斎胍粋€字符就按了一次回車,而回車其實(shí)也是一個字符。
在
scanf("%c",char[i]);語句后加上一句getchar();就可以啦!
如果前面有輸入數(shù)據(jù)的情況。把getchar();放在
scanf("%c",char[i]);之前。

LEATH
TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個贊
肯定是因?yàn)間ame()函數(shù)里有scanf語句,并且scanf之后沒有處理scanf留下的換行符。
scanf從屏幕是讀取數(shù)據(jù)時,往往不會自動讀掉行尾的換行符(你輸入數(shù)據(jù)后,肯定會按一個回車的對吧),所以在game函數(shù)里的最后一個scanf結(jié)束后,輸入緩沖區(qū)里還一個換行符在里面,這個時候main函數(shù)里的scanf函數(shù)讀到的字符就是那個換行符
解決方法:
在game函數(shù)的最后一個scanf函數(shù)后面,加上一個gets語句,用來讀掉最后一個換行符即可,當(dāng)然如果你的輸出里敲了多個回車,就要執(zhí)行多句。
添加回答
舉報
0/150
提交
取消