-1

我正在用 google test 和 Visual Studio 2005 中的 c++ 编写一个程序。该程序只执行 4 个算术运算......

最初,我编写了一个带有硬编码值的程序,它运行良好。但现在我希望用户提供输入,因此需要在程序中使用cincoutcin但是当我在代码中添加和cout语句时,它给了我以下错误:

error C2143: syntax error : missing ';' before '<<' and error C4430: 
missing type specifier - int assumed. Note: C++ does not 
support default-int for cout and    

cin 一样

error C2143: syntax error : missing ';' before '>>' and error C4430: 
missing type specifier - int assumed. Note: C++ does not 
support default-int

我有三个单独的文件:一个单元测试文件,另一个文件我已经编写了所有测试gtest,第三个文件我链接了谷歌测试提供的主文件。

下面是我的代码:

#include <iostream>
#include "stdafx.h"
#include "gtest/gtest.h"
#include "unittestcomplex.h"
using namespace std;

float a,b;

cout << "Enter two numbers:";
cin >> a >> b;
Arithmatic num;

TEST(complex, Addition)
{
    EXPECT_EQ(a+b,num.addition(a,b));
}
TEST(complex,subtraction)
{
    EXPECT_EQ(a-b,num.subtraction(a,b));
}
TEST(complex,multiplication)
{
    EXPECT_EQ(a*b,num.multiplication(a,b));
}
TEST(complex,division)
{
    EXPECT_EQ(a/b,num.division(a,b));
}

这是我编写所有函数的文件:

#include <iostream>
#include "stdafx.h"
# include <conio.h>
using namespace std;
class Arithmatic 
{
public: 
    float addition(float a, float b);
    float subtraction(float a, float b);
    float multiplication(float a, float b);
    float division(float a, float b);
};

float Arithmatic::addition(float a, float b)
{
    float sum;
    sum = a+b;
    return sum;
}

float Arithmatic::subtraction(float a, float b)
{
    float difference;
    difference = a-b;
    return difference;
}
float Arithmatic::multiplication(float a, float b)
{
    float mult;
    mult = a*b;
    return mult;
}
float Arithmatic::division(float a, float b)
{
    float div;
    div = a/b;
    return div;
}

和 main() 在这里:

#include <iostream>
#include <conio.h>
#include "stdafx.h"
#include "gtest/gtest.h"
using namespace std;

int main(int argc, char** argv)  
{    
      testing::InitGoogleTest(&argc, argv);
      RUN_ALL_TESTS();
      std::getchar(); // keep console window open until Return keystroke 
} 

我没有更改 main() 中的任何内容。它是由 提供的gtest。请告诉我如何消除这些错误并使我的程序与用户交互?

4

2 回答 2

3

此代码不是有效的 C++,因为它不属于任何函数。

cout << "Enter two numbers:";
cin >> a >> b;

它应该在函数内部移动。

于 2012-08-27T06:52:42.380 回答
2

你不能拥有这个

cout << "Enter two numbers:";
cin >> a >> b;
Arithmatic num;

功能失效。

main在函数内移动代码。或者在另一个函数中调用它main

于 2012-08-27T06:52:22.573 回答