C++ 如何构建字符串向量(包含空格)?
我试图建立一个字符串向量。 某些字符串还包含空格。 这就是为什么我使用getline(cin,string_name)。 我的代码看起来像C++ 如何构建字符串向量(包含空格)?,c++,string,getline,C++,String,Getline,我试图建立一个字符串向量。 某些字符串还包含空格。 这就是为什么我使用getline(cin,string_name)。 我的代码看起来像 for(int i=0;i<n;++i) { getline(cin, s); vec.push_back(s); } 它在输入两个字后停止,并显示向量内容 (HERE SPACE IS DISPLAYED)ADAM BOB 这是什么意思?它是否将空字符串
for(int i=0;i<n;++i)
{
getline(cin, s);
vec.push_back(s);
}
它在输入两个字后停止,并显示向量内容
(HERE SPACE IS DISPLAYED)ADAM BOB
这是什么意思?它是否将空字符串作为第一个字符串的输入?
如果有人告诉我如何获取字符串并显示它,那将非常有用。谢谢。Abhijit,
显然,你的信息还不够。假设您的代码是用C++编写的,我做了这个测试CPP:< /P>
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> vec;
std::string s;
int n = 1;
for(int i = 0; i < n; ++i)
{
getline(std::cin, s);
vec.push_back(s);
std::cout << vec.at(i) << std::endl;
}
return 0;
}
#包括
#包括
#包括
int main()
{
std::vec;
std::字符串s;
int n=1;
对于(int i=0;i
#include <iostream>
#include <vector>
#include <string>
int main()
{
int n;
std::cin >> n;
std::vector<std::string> vec;
std::string s;
std::getline(std::cin, s);
for(int i = 0; i < n; ++i)
{
std::getline(std::cin, s);
vec.push_back(s);
// std::cout << vec.at(i) << std::endl;
}
for(int i=0;i<n;++i){
std::cout << vec[i] <<" " << std::endl;
}
return 0;
}
#包括
#包括
#包括
int main()
{
int n;
标准:cin>>n;
std::vec;
std::字符串s;
标准::getline(标准::cin,s);
对于(int i=0;i //std::cout这是哪种语言?以及某种错误?这是什么错误?请提供一个,仅此代码片段无法重现您的问题抱歉,这不是任何错误,但没有给出预期的输出@yazan您能告诉我缺少什么吗?我已尝试在@UnholySheepI w正确解释此问题基本上解决了这个问题,有人告诉我如何在第二种情况下获取输入吗?是的,它在循环中正确打印,但在按下stirng后再次迭代向量时,它不会显示第三个stirng,并在第一个位置显示空格。有人能帮我吗?@Abhijit Sarkar尝试使用std::cin.ignore()
就在cin>>n之后。看。非常感谢。这就是我要找的。@pmaxim98
#include <iostream>
#include <vector>
#include <string>
int main()
{
int n;
std::cin >> n;
std::vector<std::string> vec;
std::string s;
std::getline(std::cin, s);
for(int i = 0; i < n; ++i)
{
std::getline(std::cin, s);
vec.push_back(s);
// std::cout << vec.at(i) << std::endl;
}
for(int i=0;i<n;++i){
std::cout << vec[i] <<" " << std::endl;
}
return 0;
}