2012-03-14 11 views
0

g ++を使って書かれたコードをコンパイルし、それがうまくいくかどうかをテストするプログラムを作る方法を考えています。 コード(ソリューション)を入力するテキストボックスがプログラムに表示されます。 2つの数字の合計を計算するプログラムを作成することでした。g ++を使って与えられたコードをコンパイルするプログラムを作る

#include <iostream> 

using namespace std; 

int main() 
{ 
    int a, b; 
    cin >> a >> b; 
    cout << a + b; 
    return 0; 
} 

何そのプログラムが関係していると、与えられたコードが含まれexample.cppファイルを作る(私はその部分に精通してる)およびg ++を使用してexample.cppをコンパイルしています。それがコンパイルされるとき、プログラムは何とか​​コンパイルされたプログラムに例を入力し、結果が正しいかどうかをテストしなければなりません。たとえば、テスト番号は4と5で、結果は9でなければなりません(これらのテスト番号は.txtファイルなどに保存できます)。

system("g++ C:\\Users\\%USERNAME%\\Documents\\example.cpp"); 

このプログラムでは、example.cppをコンパイルしますが、それを実行してテストする方法もあります。

アイデア?ありがとう! :)

編集:私はそれを実行してテスト番号を入力することができますが、残っているのは出力が正しいかどうかをテストすることだけです。

system("C:\\Users\\%USERNAME%\\Documents\\g++\\example.exe < example.txt"); 
+0

本当にシステムコマンドを実行して出力を調べるのにC++を使いたいですか?一種のスクリプト言語の仕事のように聞こえる。 – daramarak

+0

これはUnixシステムではうってつけの解決策ですが、ウィンドウを実行しているようです。 ( "g ++ example.cpp"の後に "./a.out << mySampleInput"と言うだけです) –

+1

@SoapCro: 'system(" example.exe output.txt ");'次に 'output.txt'を読み込みます。それが正しい数であることを確認してください。 –

答えて

0

ないほぼ正確に何がすなわちを達成したいことは、新しいプロセスを作成し、親によって作成されたパイプにstadard入力と出力をリダイレクトMSDN上sample codeがあることが起こります。

関連する問題