-1

私はグーグルテストとビジュアルスタジオ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

私は3つの別々のファイルを持っています:1つはユニットテストファイル、もう1つはすべてのテストを書き込んだファイル、gtest3つ目はgoogletestによって提供されたメインファイルをリンクしたファイルです。

以下は私のコードです:

#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 に答える