[問題] cin要怎麼用簡單語法吸收多餘的值?
開發平台(Platform): (Ex: Win10, Linux, ...)
Dev C++
書上寫說:
cin.get(num);
//此時輸入一個值按Enter 則這個\n會延續到下次輸入
所以要這樣寫:
cin.get(num);
cin.get();
//用cin.get()來吸收多餘的\n
可是如果我想要輸入連續字串 請問該如何吸收多餘的值呢?
下面範例是希望可以做到這樣流程: 輸入名字 -> Enter -> 輸入年齡 -> Enter
最多三個中文字 如果名字輸入"歐陽小明" 則name就是"歐陽小" 不用做界限檢查
第一個失敗範例:
char name[2*3+1];
int age;
int i=0;
do{
cin>>name[i];
}while(++i<6);
cin>>age;
cout<<name<<endl;
cout<<age<<endl;
第二個失敗範例:
char name[2*3+1];
int age;
cin.getline(name,2*3+1);
cin>>age;
cout<<name<<endl;
cout<<age<<endl;
請問各位大大
有比較簡單的語法可以達到我的需求嗎?
感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.52.179
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1476874672.A.910.html
→
10/19 20:47, , 1F
10/19 20:47, 1F
是直接把 cin.ignore(); 加到裡面嗎? 這樣結果還是會影響到age的輸入
→
10/19 21:04, , 2F
10/19 21:04, 2F
試過之後還是bug
→
10/19 21:06, , 3F
10/19 21:06, 3F
→
10/19 21:07, , 4F
10/19 21:07, 4F
因為用法不同 書上就是很單純輸入一個整數 吃掉一個\n
→
10/19 21:19, , 5F
10/19 21:19, 5F
這個好像沒問題 感謝!!
→
10/19 21:22, , 6F
10/19 21:22, 6F
※ 編輯: ReiFu21 (61.230.52.179), 10/19/2016 21:27:53
→
10/19 22:11, , 7F
10/19 22:11, 7F
→
10/20 00:01, , 8F
10/20 00:01, 8F