为什么我的计算器没有打印出任何东西?

Why doesn't my calculator doesn't print out anything?

本文关键字:任何东 打印 我的 计算器 为什么      更新时间:2023-10-16

由于某种原因,它不会打印我的返回语句我已经尝试了所有的方法,但我就是做不好。

//calculator
#include <iostream>
using namespace std;
int input1;
int input2;
int add(int input1, int input2)
{
    cout<<"Enter two numbers to add: ";
    cin>> input1,input2;
    return  (input1 +  input2);
}
int subtract(int input1, int input2)
{
    cout<<"Enter first number to subtract: ";
    cin>> input1;
    cout<<"Enter second number to subtract: ";
    cin>> input2;
    return (input1 -  input2);
}
int multiply(int input1, int input2)
{
cout<<"Enter two numbers to multiply: ";
cin>>  input1, input2;
return (input1 * input2);
}
int main()
{
    cout<<"what do you want to do: ";
    int selection;
    cout<<"1.addn";
    cout<<"2.subtractn";
    cout<<"3.multiplyn";
    cin>>selection;
    if (selection ==  1) {
        return add(input1, input2);
        return input1 + input2;
    }
    else if (selection ==  2) {
        return subtract(input1, input2);
        return input1 - input2;
    }
    else if (selection ==  3) {
        return multiply( input1, input2);
        return input1 * input2;
    }
    else{
        cout<<"Error choice not available";
    }
    cin.get();
    system("pause");
}

"出于某种原因,它不会打印我的报税表;。

这是因为没有打印任何内容,您只是从main返回函数的结果。

这是你的问题:

if (selection ==  1) {
    return add(input1, input2);
    return input1 + input2;
    // no printing statment
}
else if (selection ==  2) {
    return subtract(input1, input2);
    return input1 - input2;
    // no printing statment here as well
}
else if (selection ==  3) {
    return multiply( input1, input2);
    return input1 * input2;
    // nither here 
}

你应该这样打印:

if (selection ==  1) {
    cout << add(input1, input2) << endl;
}
else if (selection ==  2) {
    cout << subtract(input1, input2) << endl;
}
else if (selection ==  3) {
    cout << multiply( input1, input2) << endl;
}

此外,您还需要像在减法函数中那样从用户那里获得输入,即更改以下内容:

cout<<"Enter two numbers to add: ";
cin>> input1,input2;

cout<<"Enter two numbers to multiply: ";
cin>>  input1, input2;

对此:

cout<<"Enter first number to subtract: ";
cin>> input1;
cout<<"Enter second number to subtract: ";
cin>> input2;

基本上,您不会看到您的返回值,因为您从未将它们打印到屏幕上。可以在每个例程中执行,也可以在main例程中执行。

您可能还想删除主例程中的所有return语句;它们中的每一个都立即结束正在运行的程序。(提示:删除每个是不够的。)

main中的

return将立即停止执行程序,并将退出代码返回到操作系统。这个退出代码可以用于错误检查、结果检查等……但操作系统不会将其打印到控制台

在您的代码中,它将在第一次函数调用后停止,并且永远不会到达下一个返回语句。您将收到许多关于无法访问代码的警告始终在编译器中启用所有警告并读取它们,这对帮助您解决中的许多错误非常有帮助

但是,即使到达下一条语句,也不会发生任何事情,只会将数字返回给系统,您可以通过在cmd中运行echo %errorlevel%或在bash 中运行echo $?来检查该数字

参见

  • main()函数是否返回值
  • main()的返回值会发生什么情况
  • 在C++程序的主函数中,"return 0"是什么意思

只是给出一个稍微更完整的解释-您的返回语句在main中所做的事情与它们在任何其他函数中做的事情完全相同-返回一个值。正如Ran Eldan提到的,您需要使用cout打印到控制台,就像您请求输入一样。当你在main中返回一个int时,你实际上是把这个数字返回给操作系统,用作执行后要检查的程序状态代码("0"通常是"一切顺利"的代码)。实际上,您可以在程序完成后使用echo $?在UNIX终端(Mac OSX或Linux)中检查此值。按照你目前的程序结构,你可以通过这样做来获得结果,但这显然不是你想要的。