[问题] 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