首页 > 解决方案 > 如何将用户输入变量插入向量中的同一位置?

问题描述

//主驱动

int main(){

//如果我运行下面的代码。

    vector<string> A = {"My name is Muzaib.\n Hello"};
    cout << A[0];

//它将打印我的名字是Muzaib

// 你好

//但我想知道的是,除了用户输入,我该如何做同样的事情?

string name, age;
cout << "Enter name: ";
getline(cin,name);
cout << "\nEnter age: ";
getline(cin,age);
vector<string> B = {"name \n age"}  //remember I want it in the same spot.
cout << B[0]

​返回0;}

标签: c++11vector

解决方案


在我看来,你想从 构建一个字符串name + '\n' + age,所以:

std::vector<std::string> B = {name + '\n' + age};

我建议将姓名和年龄存储为单独的实体。例子:

struct foo {
    std::string name;
    int age;
};

std::ostream& operator<<(std::ostream& os, const foo& f) {
    return os << f.name << '\n' << f.age;
}

std::vector<foo> B = {{name, std::stoi(age)}};
std::cout << B[0] << '\n';

推荐阅读