[問題] cin要怎麼用簡單語法吸收多餘的值?

作者: ReiFu21 (ReiFu)   2016-10-19 18:57:49
開發平台(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;
請問各位大大
有比較簡單的語法可以達到我的需求嗎?
感謝!!
作者: longlongint (華哥爾)   2016-10-19 20:47:00
cin.ignore()符合你的要求嗎
作者: pttworld (批踢踢世界)   2016-10-19 21:04:00
只想語法,if(i > 0) cin.get(); 在cin name上一列。keywords: wchar_t
作者: stupid0319 (徵女友)   2016-10-19 21:07:00
書上都寫給你解法了XDXD如果把name的size弄大一點大概16吧,再name[6] = '\0';或while(cin.get() != '\n');我隨便猜的
作者: pttworld (批踢踢世界)   2016-10-19 22:11:00
先用英文名測試。已給關鍵字。
作者: x000032001 (版廢了該走了)   2016-10-20 00:01:00

Links booklink

Contact Us: admin [ a t ] ucptt.com