C++;将用户输入的字符串句子存储到向量中 我是C++初学者,目前是学习向量。下面是一个简单的代码,程序获取用户输入并将其存储在向量中,然后继续打印每个元素的存储值: int main(){ vector<string> myVector; string myInput; int n; cin>>n; cin.ignore(numeric_limits<streamsize>::max(),'\n'); for(int i = 1; i <= n;i++){ cout<<"loop count: "<<i<<endl; //added for checking the current loop getline(cin, myInput); cin.ignore(numeric_limits<streamsize>::max(),'\n'); myVector.push_back(myInput); } for(unsigned int j = 0;j < myVector.size(); j++){ cout<<myVector[j]<<endl; } return 0; }
输出:C++;将用户输入的字符串句子存储到向量中 我是C++初学者,目前是学习向量。下面是一个简单的代码,程序获取用户输入并将其存储在向量中,然后继续打印每个元素的存储值: int main(){ vector<string> myVector; string myInput; int n; cin>>n; cin.ignore(numeric_limits<streamsize>::max(),'\n'); for(int i = 1; i <= n;i++){ cout<<"loop count: "<<i<<endl; //added for checking the current loop getline(cin, myInput); cin.ignore(numeric_limits<streamsize>::max(),'\n'); myVector.push_back(myInput); } for(unsigned int j = 0;j < myVector.size(); j++){ cout<<myVector[j]<<endl; } return 0; },c++,C++,输出: we are no time we are 你有没有试着把cin.clear()放进去;cin.sync();在getline函数之前?当您同时使用cin和getline时,它们会给您带来问题。您是否尝试放置cin.clear();cin.sync();在getline函数之前?cin和getline在同时使用时会给您带来问题。问题在于循环内的调用 将默默地吃掉尾随的换行符,但由于您随后调用了ignore,因此必须输入第二行以满足ignore的要求 只需从循环中删除ignore调用,它
we are
no time
we are
你有没有试着把cin.clear()放进去;cin.sync();在getline函数之前?当您同时使用cin和getline时,它们会给您带来问题。您是否尝试放置cin.clear();cin.sync();在getline函数之前?cin和getline在同时使用时会给您带来问题。问题在于循环内的调用 将默默地吃掉尾随的换行符,但由于您随后调用了
ignore
,因此必须输入第二行以满足ignore
的要求
只需从循环中删除ignore
调用,它就会按照您的预期工作。问题在于循环中的调用
将默默地吃掉尾随的换行符,但由于您随后调用了ignore
,因此必须输入第二行以满足ignore
的要求
只需从循环中删除
ignore
调用,它就会像您预期的那样工作。关于您的问题,您能告诉我们您为程序提供的输入以及实际和预期的输出吗?请花点时间。获取整行内容(包括空格)。空格是字符串中的一个完全有效的字符……至于你的问题,你能告诉我们你给程序的输入,以及实际和预期的输出吗?请花点时间。获取整行内容(包括空格)。空格是字符串中的一个完全有效的字符…谢谢!它实际上解决了这个问题。另外,谢谢你解释为什么会发生谢谢!它实际上解决了这个问题。另外,谢谢你解释为什么会这样
we are
no time
we are