按字符控制变量
Controlling variable by character
我正在用c++制作计算器,我有一个问题。有办法做这样的事吗?
if( x = "+" ) {y = 1}
if( x = "-" ) {y = 2}
if( x = "*" ) {y = 3}
if( x = "/" ) {y = 4}
我需要使用字符"+-*/"来控制"y",它会给我一些错误,比如"error:从'const-char*'到'int'的无效转换[-fpermission]|"我不知道是什么意思
我是初学者。感谢您的帮助:)
- 比较运算符为
==
。=
用于分配或初始化 "+"
是字符串文字,也称为char[2]
;由于空字节,2
。一个字符是'+'
。注意,C++中的字符文字是char
s,而在C中是int
s- 使用
else if
或更好的switch
控制结构。CCD_ 11为编译器留下了更多的优化空间,比如跳表或散列映射 y
的这个数字赋值看起来不太好。请改用enum
通常,您希望使用switch
语句,按照以下一般顺序:
switch (x) {
case '+': y = 1; break;
case '-': y = 2; break;
case '*': y = 3; break;
case '/': y = 4; break;
}
如果您有更多的可能性(或者可能需要从外部数据文件加载可能性,等等),您可能需要考虑使用std::map
或std::unordered_map
:
std::map<char, int> ops;
ops['+'] = 1;
ops['-'] = 2;
ops['*'] = 3;
ops['/'] = 4;
y = ops.find(x)->second;
if( x == '+' ) {y = 1}
if( x == '-' ) {y = 2}
if( x == '*' ) {y = 3}
if( x == '/' ) {y = 4}
x=对变量x表示某种的值
x==something means如果x包含相同的something值,则返回true,否则返回false。
对于char变量,请记住使用"而不是"
另一种方法是使用交换机
switch(x){
case '+':
y = 1;
break;
case '*':
y = 2;
break;
etc...
}
相关文章:
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 如何使用C++将字符串中的字符转换为整数变量
- 如何从字符串中找到字符(变量)?
- C++理解计算字符变量的问题
- 变量名称中的北欧字符C++
- 将十六进制值设置为用于填充的字符变量时出现问题
- 将字符数组转换为结构时出现问题. 结构的字符数组变量溢出
- 使用单个变量对字符输入进行计数
- 将子字符串字符从字符串值转换为 int,然后将其分配给 int 变量
- 将字符串变量分配给无符号字符变量
- 在 c++ 中基于范围的 for 循环中使用引用作为控制变量
- 为什么我无法获取 MSVS2019 / C++ 中字符或uint8_t变量的内存地址?
- xcode 从源代码中删除奇怪的控制字符
- 需要帮助定义循环控制变量(while loops)C++
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- 访问lambda内部循环控制变量
- C 是循环控制变量,并且在循环中相同
- 双变量字符变量
- 按字符控制变量
- 在工作线程完成MFC时禁用控制变量