我正在用 google test 和 Visual Studio 2005 中的 c++ 编写一个程序。该程序只执行 4 个算术运算......
最初,我编写了一个带有硬编码值的程序,它运行良好。但现在我希望用户提供输入,因此需要在程序中使用cin
和cout
。cin
但是当我在代码中添加和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
。请告诉我如何消除这些错误并使我的程序与用户交互?