如何将用户输入变量插入到vector<string>的同一个位置?
要实现将用户输入的name、age变量拼接后存入vector<string>的单个元素,核心是将变量值和换行符拼接为单个字符串再存入容器,你原来的写法将变量名写在字符串字面量中,只会输出固定文本,不会替换为变量实际值。
最简实现(兼容所有C++版本)
直接用字符串加号运算符拼接即可,完整可运行代码如下:
#include <iostream> #include <vector> #include <string> using namespace std; int main(){ string name, age; cout << "Enter name: "; getline(cin, name); cout << "\nEnter age: "; getline(cin, age); // 拼接为单个字符串,格式和你最初的示例输出保持一致 string combine_str = "My name is " + name + ".\n " + age; vector<string> B = {combine_str}; cout << B[0]; return 0; }
其他可选实现方式
- C++20及以上版本可使用
std::format做格式化拼接,代码可读性更高:#include <format> // 省略重复的变量读取逻辑 string combine_str = format("My name is {}.\n {}", name, age); vector<string> B = {combine_str}; - 需要拼接多种不同类型变量(比如数值型的年龄)时,也可以用
stringstream实现:#include <sstream> // 省略重复的变量读取逻辑 stringstream ss; ss << "My name is " << name << ".\n " << age; vector<string> B = {ss.str()};
内容的提问来源于stack exchange,提问作者muhammad muzaib
相关产品推荐
相关产品推荐

