无法从用户定义的函数中获取值

时间:2016-07-27 17:16:26

标签: c++ function

我试图从用户定义的功能中检索数据,但我无法这样做。

例如,我有两个用户定义函数

  

getPosition:为了根据用户输入知道图表上的位置

     

printPosition:为了根据图表的位置显示信息

例如,对于我的getPosition,我做了一个简单的if else语句

char getPosition (float x, float y){

char position;

if (x > 0 && y > 0)

    position = 1;

else if (x < 0 && y > 0)

    position = 2;

 ......

return position;

接下来,我尝试printPosition使用切换案例

    switch(position)
{

    case '1' : cout << "==> (" << x << ", " << y << ") is above X-axis" << endl;
               cout << "==> It is at first quadrant" << endl;
               break;

    case '2' : cout << "==> (" << x << ", " << y << ") is above X-axis" << endl;
               cout << "==> It is at second quadrant" << endl;
               break;

   .......

}

因此,在有两个用户定义函数后,我试图调用getPosition中的值来打印printPosition

中的数据
printPosition(x, y, getPosition(x,y));

但是,它不会产生任何输出。为什么会如此。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

要么改变:

position = 1;
position = 2;
...

要:

position = '1';
position = '2';
...

或改变:

case '1':
case '2':
...

要:

case 1:
case 2:
...

答案 1 :(得分:0)

position = '1';
position = '2';

您还应该在switch语句中始终使用default语句,因为这有助于您了解没有执行任何case语句,这是一种简单的调试方法。

可以这样实现:

switch(position)
{
case '1':
//whatever
break;
case '2':
//whatever
break;
default:
//Can have a message like:
cout << "The value was not in any of the case statements" << endl;
//No break needed for default statements
}