Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何构建字符串向量(包含空格)?_C++_String_Getline - Fatal编程技术网

C++ 如何构建字符串向量(包含空格)?

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 这是什么意思?它是否将空字符串

我试图建立一个字符串向量。 某些字符串还包含空格。 这就是为什么我使用getline(cin,string_name)。 我的代码看起来像

      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;

}