亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

scanf()將新行char留在緩沖區中

scanf()將新行char留在緩沖區中

慕姐4208626 2019-05-21 16:58:44
scanf()將新行char留在緩沖區中我有以下程序:int main(int argc, char *argv[]){  int a, b;  char c1, c2;  printf("Enter something: ");  scanf("%d",&a); // line 1  printf("Enter other something: ");  scanf("%d", &b); // line 2  printf("Enter a char: ");  scanf("%c",&c1); // line 3  printf("Enter another char: ");  scanf("%c", &c2); // line 4  printf("Done"); // line 5  system("PAUSE");  return 0;}正如我在C書中讀到的那樣,作者說scanf()在緩沖區中留下了一個新的行字符,因此,程序不會在第4行停止供用戶輸入數據,而是將新行字符存儲在c2中并移至第5行。是對的嗎?但是,這只發生在char數據類型中嗎?因為我沒有int在第1,2,3行中看到數據類型的這個問題。是不是?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

使用scanf(" %c", &c2);。這將解決您的問題。


查看完整回答
反對 回復 2019-05-21
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

getchar()在呼叫第二之前使用scanf()。


scanf("%c", &c1);

getchar();  // <== remove newline

scanf("%c", &c2);


查看完整回答
反對 回復 2019-05-21
  • 3 回答
  • 0 關注
  • 655 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號