C++ C++;:我的简单计算器程序赢得了';我不能打印出来。我还认为我的变量命名不正确

C++ C++;:我的简单计算器程序赢得了';我不能打印出来。我还认为我的变量命名不正确,c++,C++,计算器程序将接受第一个数字、操作和第二个数字的输入 我已经将程序设置为使用条件语句选择操作。然而,程序不输出 我还尝试使用xor逻辑打印错误消息,说明操作选择不当 我认为问题在于我如何使用变量。任何批评或建议都将不胜感激 我是学习C++的新手,所以我想做一个简单的双输入计算器。我试图挑战我对变量和条件语句的理解 void add_func(); void sub_func(); void mult_func(); void divi_func(); int main() { 双a; 双b; c

计算器程序将接受第一个数字、操作和第二个数字的输入

我已经将程序设置为使用条件语句选择操作。然而,程序不输出

我还尝试使用xor逻辑打印错误消息,说明操作选择不当

我认为问题在于我如何使用变量。任何批评或建议都将不胜感激

我是学习C++的新手,所以我想做一个简单的双输入计算器。我试图挑战我对变量和条件语句的理解


void add_func();
void sub_func();
void mult_func();
void divi_func();
int main()
{
双a;
双b;
char op;
库塔;
cout-op;
cout b;
如果(op==1)
cout您需要使用函数参数在函数之间传递值。不同函数中的两个变量永远不是同一个变量,即使它们具有相同的名称


你必须选择是否要做你的
cout我很确定:
如果(op!=(1^2^3^4))
没有做你认为应该做的事

^
运算符是一个逐位异或运算符,如果两个输入均为0,或如果两个输入均为1,则结果中会给出0位。如果一个输入为1,另一个输入为0,则结果为1

这些运算是从左到右计算的,所以让我们一次处理一个运算。为了清楚结果是如何产生的,我们将包括数字的二进制等价物:

  • 1^2
    ->
    0001^0010
    ->
    0011
    ,即
    3
  • 3^3
    ->
    0011^0011
    ->
    0000
    ,即
    0
  • 0^4
    ->
    0000^0100
    ->
    0100
    ,即
    4

<>你的代码相当于:<代码>(OP!=4) ./P> < P>请考虑使用一个简单的在线教程来学习基础知识。 例如: 或: 另外,在编写代码时,尽量选择最简单的解决方案。 不管怎样,以后事情会变得复杂:) 对于一个简单的计算器来说,一个简单的开关就足够了。 请考虑以下C代码:

#include <iostream>

int main()
{
    double a;
    double b;
    char op;

    while(true)
    {
        std::cout << "Input 1st Number: " << std::endl;
        std::cin >> a;
        std::cout << "Select Operation: (+) (-) (*) (/) or (x) to exit: " << std::endl;
        std::cin >> op;
        std::cout << "Input 2nd Number: " << std::endl;
        std::cin >> b;

        switch (op)
        {
        case '+':
            std::cout << std::to_string(a+b) << std::endl;
            break;
        case '-':
            std::cout << std::to_string(a-b) << std::endl;
            break;
        case '*':
            std::cout << std::to_string(a*b) << std::endl;
            break;
        case '/':
            std::cout << std::to_string(a/b) << std::endl;
            break;
        case 'x':
            return 0;
            break;        
        default:
            std::cout << "Invalid Operation Selected" << std::endl;
            break;
        }
    }
}
#包括
int main()
{
双a;
双b;
char op;
while(true)
{
std::cout a;
标准::cout-op;
std::cout b;
开关(op)
{
格“+”:

std::难道
add_func()
中的局部变量与
main()中声明的变量完全无关吗
。似乎您需要获得a才能了解基本知识。同样,使用
op
being
char
,然后
cin>>op
输入一个字符,然后将其ASCII值与1,2,3,4进行比较。因此,选择加法操作的唯一方法是键入Control+V Control+a(至少在Unix系统上)。类似于
if(op==1)
的操作将无法运行。您需要执行
if(op==1')
,或者
op
需要为int。“您需要使用函数参数在函数之间传递值。”好吧,全局范围内的变量也可以执行相同的操作,我不建议这样做:-P。。。
#include <iostream>

int main()
{
    double a;
    double b;
    char op;

    while(true)
    {
        std::cout << "Input 1st Number: " << std::endl;
        std::cin >> a;
        std::cout << "Select Operation: (+) (-) (*) (/) or (x) to exit: " << std::endl;
        std::cin >> op;
        std::cout << "Input 2nd Number: " << std::endl;
        std::cin >> b;

        switch (op)
        {
        case '+':
            std::cout << std::to_string(a+b) << std::endl;
            break;
        case '-':
            std::cout << std::to_string(a-b) << std::endl;
            break;
        case '*':
            std::cout << std::to_string(a*b) << std::endl;
            break;
        case '/':
            std::cout << std::to_string(a/b) << std::endl;
            break;
        case 'x':
            return 0;
            break;        
        default:
            std::cout << "Invalid Operation Selected" << std::endl;
            break;
        }
    }
}