函数不返回值,但cout显示它

时间:2018-05-17 11:42:52

标签: c++ c++11

我一直在学习C ++,并尝试制作一个简单的函数来返回房间的区域。 return语句不输出值,但是使用cout我可以看到结果。我在这里错过了什么吗?

#include <iostream>
using namespace std;

int Area(int x, int y);

int main()
{
  int len;
  int wid;
  int area;
  cout << "Hello, enter the length and width of your room." << endl;
  cin >> len >> wid;
  cout << "The area of your room is: ";
  Area(len, wid);
  return 0;
}

int Area(int len, int wid)
{
  int answer = ( len * wid );
  return answer;
}

2 个答案:

答案 0 :(得分:8)

std::cout用于在屏幕上打印数据。仅函数返回值,因此Area函数将返回要在std::ostream::operator<<函数中传递的值以进行打印。你需要写:

std::cout << Area(len, wid) << "\n";

答案 1 :(得分:7)

return不打印任何内容,您不应该期望它。它只是返回函数中的值。然后,您可以使用该值执行任何操作,包括打印或将其分配给变量:

// Does not print:
Area(len, wid);

// Does print:
int result = Area(len, wid);
std::cout << result << "\n";

// Does print:
std::cout << Area(len, wid) << "\n";

想象一下,如果庞大的代码库中的每个函数突然开始打印其返回值,就会出现混乱......