c語言for循環里的scanf怎么用?
2 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
因為你非常有可能每輸入一個字符就按了一次回車,而回車其實也是一個字符。
在
scanf("%c",char[i]);語句后加上一句getchar();就可以啦!
如果前面有輸入數據的情況。把getchar();放在
scanf("%c",char[i]);之前。

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