为什么我的计算器没有打印出任何东西?
Why doesn't my calculator doesn't print out anything?
由于某种原因,它不会打印我的返回语句我已经尝试了所有的方法,但我就是做不好。
//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
语句;它们中的每一个都立即结束正在运行的程序。(提示:删除每个是不够的。)
return
将立即停止执行程序,并将退出代码返回到操作系统。这个退出代码可以用于错误检查、结果检查等……但操作系统不会将其打印到控制台
在您的代码中,它将在第一次函数调用后停止,并且永远不会到达下一个返回语句。您将收到许多关于无法访问代码的警告始终在编译器中启用所有警告并读取它们,这对帮助您解决中的许多错误非常有帮助
但是,即使到达下一条语句,也不会发生任何事情,只会将数字返回给系统,您可以通过在cmd中运行echo %errorlevel%
或在bash 中运行echo $?
来检查该数字
参见
- main()函数是否返回值
- main()的返回值会发生什么情况
- 在C++程序的主函数中,"return 0"是什么意思
只是给出一个稍微更完整的解释-您的返回语句在main中所做的事情与它们在任何其他函数中做的事情完全相同-返回一个值。正如Ran Eldan提到的,您需要使用cout
打印到控制台,就像您请求输入一样。当你在main
中返回一个int时,你实际上是把这个数字返回给操作系统,用作执行后要检查的程序状态代码("0"通常是"一切顺利"的代码)。实际上,您可以在程序完成后使用echo $?
在UNIX终端(Mac OSX或Linux)中检查此值。按照你目前的程序结构,你可以通过这样做来获得结果,但这显然不是你想要的。
- 打印时有二叉树问题.用户输入不打印任何内容
- main() 中的 std::cout 在调试期间不会在调试控制台中打印任何内容
- 为自定义打印调试实现传递任何类型的变量
- cout 不打印任何内容到控制台
- 为什么字符串没有更新并且最终没有打印任何内容
- 我如何处理 TMP 以避免打印任何东西
- 为什么我的主文件.cpp不打印头文件中的任何内容
- 我想使用 "cout" 命令慢慢打印文本,但我真的找不到任何解决方案
- 泛型函数反向打印任何矢量,编译器出错
- Cout 一个字符串可以打印任何内容到屏幕上
- "cout<<count<<endl;"没有打印任何内容
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- 我的esp32打印奇怪的字符,但我做任何事情
- 为什么循环迭代不打印任何东西?
- 函数不打印任何 c++
- 下面的代码没有打印任何东西
- 我的 c++ 程序中的字符数组不会打印任何内容
- 如果否则错误:如何使其打印任何数字
- 是否有任何操纵器将枚举值打印为字符串?
- 该程序不会在任何地方打印系统日志?