在getline之后在c ++中输入
taking input in c++ after getline
使用 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
我可以,但 reversed 的值始终为 0,type 始终为空白。请帮助我在输入时做错了什么?
我还必须在 for 循环之前使用一次 getline
才能正确获取 "n" 字符串的输入。如何避免这种情况?
除非您设置 boolalpha
标志,否则 cin >> bool
需要 0
或 1
。
要使用文字 "true"
/ "false"
,请像这样设置 boolapha
:
cin >> boolalpha >> reversed;
使用 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
我可以,但 reversed 的值始终为 0,type 始终为空白。请帮助我在输入时做错了什么?
我还必须在 for 循环之前使用一次 getline
才能正确获取 "n" 字符串的输入。如何避免这种情况?
除非您设置 boolalpha
标志,否则 cin >> bool
需要 0
或 1
。
要使用文字 "true"
/ "false"
,请像这样设置 boolapha
:
cin >> boolalpha >> reversed;