检索整数变量的值

时间:2011-01-11 04:36:50

标签: c++ variables integer

这可能很容易理解,但出于某种原因,我无法在任何地方找到解决方案。也许我不是在寻找合适的东西。也许它是在一些初学者教程中我没有看过。

无论如何,我想知道如何在C ++中检索整数变量的值?我知道你可以使用cin.getline()作为字符串变量,但是当我尝试使用整数变量时,我收到了一条错误消息(理所当然,我知道这是错误的,但我正在寻找解决方案)。

我的项目是Win32控制台应用程序。我要做的是要求用户输入存储在变量n中的数字。然后我取n的值并用它执行各种数学函数。在我的标头文件中,我有stringwindowsiostreamstdiomathfstream。我需要添加另一个库吗?

修改

cout << "TEST SINE";
cout << "\nPlease enter a number.\n\n";
cin >> n;
break;

这是我正在尝试使用的代码。这就是我需要做的吗?如果是这样,我如何合并变量,以便我可以使用sin,cos和tan?

进行测试

然而,再次提前谢谢。

2 个答案:

答案 0 :(得分:5)

这有什么问题?

cin>>n;

对于数学函数,float或double是更好的选择。

int main()
{
   double number;
   double result;

   cout<<"Enter a number:"<<endl;
   cin>>number;

   result = sin (number);  //if you consider number is in radians
   //result = sin(number*3.14159265/180.0) //if you consider number is in degrees    

   cout<<result;

   return 0;
}

答案 1 :(得分:3)

如果需要整数,可以使用:

cin >> n;

但如果您想要一个强大的应用程序,最好控制输入数据。

也许更好的想法是将它作为字符串输入,因为您已经知道如何处理getline(),然后在调用转换函数atoi()之前验证字符串是否包含所有数字字符或strtol()

这样,您可以获得强大的输入以及您想要的数据类型。

但是,如果你想使用三角函数,你最好使用atof()而不是整数来处理双精度。


这是一个让您入门的示例程序:

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstring>
using namespace std;

int main (void) {
    char s[256];

    // Get and check line.

    cout << "Enter angle in degrees: ";
    cin.getline(s,100);
    for (char *ps = s; *ps != 0; ps++) {
        if (!isdigit (*ps)) {
            cout << "Not numeric" << endl;
            return 1;
        }
    }

    // Output string, float, sine and cosine (convert to radians first).

    float f = atof (s);
    cout << "String : '" << s << "'" << endl;
    cout << "Float  : " << f << endl;
    f = f * 3.141592653589 / 180.0;
    cout << "Sine   : " << fixed << sin (f) << endl;
    cout << "Cosine : " << fixed << cos (f) << endl;

    return 0;
}

示例运行如下所示:

Enter angle in degrees: 30
String : '30'
Float  : 30
Sine   : 0.500000
Cosine : 0.866025

Enter angle in degrees: 45
String : '45'
Float  : 45
Sine   : 0.707107
Cosine : 0.707107

Enter angle in degrees: 90
String : '90'
Float  : 90
Sine   : 1.000000
Cosine : -0.000000      (caused by floating point inaccuaracy).