C++中如何用单行代码实现用户输入到变量的赋值?
C++单行读取用户输入并赋值的方法
当然有办法实现单行赋值,不用非得拆成两行写。先说说你之前尝试的写法为什么行不通:
const string foo = cin >> foo;:cin >> foo返回的是cin对象本身,不是读取到的字符串,没法直接赋值给string类型的变量;cin >> const string foo;:语法完全错误,const修饰的变量必须初始化,而且cin需要修改变量的值,不能操作const对象。
实现方式
普通变量单行完成定义+读取
不用自定义函数的话,直接把定义和读取写在同一行(用分号分隔两个语句)就行,支持所有可被cin读取的类型:std::string foo; std::cin >> foo; // 如果要读取带空格的整行输入,用getline: std::string foo; std::getline(std::cin, foo);常量变量的单行赋值
如果你希望变量是const,可以自己写个简单的模板函数封装输入逻辑,这样就能像C#那样用单行表达式赋值:#include <iostream> #include <string> template<typename T> T read_input() { T val; std::cin >> val; return val; } // 调用示例: const std::string foo = read_input<std::string>(); const int num = read_input<int>(); const double price = read_input<double>();这个模板函数能适配各种基础类型和字符串,返回读取到的值,直接赋值给
const变量完全没问题。
内容的提问来源于stack exchange,提问作者keppy
相关产品推荐
相关产品推荐

