C++中cin能否绑定字符串变量?输入变量名如何输出对应值?
C++ cin与string使用相关问题解答
1. cin是否可以和string类型变量配合使用
完全可以,只需要提前引入<iostream>和<string>两个标准库头文件即可。
常规写法cin >> 字符串变量会默认按空白符(空格、换行、制表符)作为分隔符读取内容,如果你需要读取包含空格的完整一行内容,可以使用getline(cin, 字符串变量)。
最简单的使用示例:
#include <iostream> #include <string> int main() { std::string str; // 读取输入的字符串 std::cin >> str; // 输出读取结果 std::cout << str << std::endl; return 0; }
2. 输入变量名打印对应变量值的实现方案
C++是编译型语言,没有原生运行时反射能力,编译完成后变量名会被替换为内存地址,无法直接通过输入的字符串匹配到代码中定义的变量。你可以借助std::map手动建立变量名和对应值的映射来实现需求,完整示例代码如下:
#include <iostream> #include <string> #include <map> using namespace std; int main() { // 手动建立变量名与值的映射关系 map<string, string> var_mapping = { {"a", "0 1"}, {"b", "0 1"}, {"c", "1 1"}, {"d", "1 1"} }; string input; cin >> input; if (var_mapping.find(input) != var_mapping.end()) { cout << var_mapping[input] << endl; } else { cout << "不存在对应的变量" << endl; } return 0; }
运行代码后输入a,控制台就会输出你需要的0 1。
内容的提问来源于stack exchange,提问作者Tianle Li
相关产品推荐
相关产品推荐

