在 getline 之后在 C++ 中输入
Posted
技术标签:
【中文标题】在 getline 之后在 C++ 中输入【英文标题】:taking input in c++ after getline 【发布时间】:2017-11-11 21:00:59 【问题描述】:在使用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”字符串。如何避免?
【问题讨论】:
【参考方案1】:除非您设置boolalpha
标志,否则cin >> bool
需要0
或1
。
要使用文字"true"
/ "false"
,请像这样设置boolapha
:
cin >> boolalpha >> reversed;
【讨论】:
以上是关于在 getline 之后在 C++ 中输入的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 getline 的情况下在 C++ 中将输入字符串直到行尾
C++基础:各种输入方法总结,cincin.get()cin.getline()getline()gets()getchar()