我正在制作一个制作列表的程序,但无法添加多个单词的内容。 (即流行石或卫生纸)
cout<<"What would you like to add?"<<endl;
string NewItem;
cin>>NewItem;
现在我正在使用cin,但我看到了关于getline()的一些内容,但没有关于它是否会对我有所帮助。当我尝试这一切时,我得到的是运行时错误,所以我不确定出了什么问题。
getline(cin, NewItem);
这就是我在尝试时取代cin的原因。 运行时错误没有查找用户输入,它只是暂停了一秒钟。
答案 0 :(得分:1)
你不应该混合getline
和cin >>
(或者,如果使用,请谨慎使用,因为cin
会在缓冲区中留下可能最终出现的空格&#34;通过getline
吃掉了#34;所以你必须忽略它们。仅使用getline
,例如
#include <iostream>
using namespace std;
int main()
{
cout << "What would you like to add?" << endl;
string NewItem;
getline(cin, NewItem);
std::cout << "You added: " << NewItem << std::endl;
}
答案 1 :(得分:0)
std::cin
将数据提取到字符串变量,直到它看到流中的分隔符字符。新行和空格是此功能的分隔符。这就是你无法读取字符串的原因,例如&#34;流行摇滚&#34;完全。它将读取第一个空格并停止从流中读取。