在使用getline
后,我在使用C ++进行输入时遇到了一些问题。以下是一段代码:
cin>>n;
vector<string>v(n);
string s, type;
bool reversed;
getline(cin, s);
for(int i=0;i<n;i++) {
getline(cin, s);
v[i]=s;
}
cin>>key;
cin>>reversed;
cin>>type;
以下输入 -
3
92 022
82 12
77 13
2 true digital
我需要的是以下行作为带空格的字符串 -
92 022
82 12
77 13
我能够,但reverse的值始终为0,类型始终为空。请帮助我在输入时做错了什么?
我还必须在for循环之前使用getline
一次来获取&#34; n&#34;串正确。如何避免?
答案 0 :(得分:2)
除非您设置boolalpha
标记,否则cin >> bool
需要0
或1
。
要使用文字"true"
/ "false"
,请设置boolapha
,如下所示:
cin >> boolalpha >> reversed;