2025-04-24

下記プログラムテストコードを書いてください

#include <stdio.h>

main( ){

    printf("hello, world\n");

}

C言語簡単テストコードを書く(より自動化に近い形)

C言語で別のプログラム作成し、system 関数などを使って最初プログラムを実行し、その出力を読み取って比較する方法です。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main() {

char expected_output[] = "hello, world\n";

char actual_output[100]; // 十分なバッファサイズを確保

// hello プログラムを実行し、出力を actual_output にリダイレクト環境依存

// これは非常に簡略化された概念であり、実際にはパイプ処理などが必要になります

char command[200];

#ifdef _WIN32

sprintf(command, "hello.exe > temp_output.txt");

#else

sprintf(command, "./hello > temp_output.txt");

#endif

system(command);

FILE *fp = fopen("temp_output.txt", "r");

if (fp != NULL) {

fgets(actual_output, sizeof(actual_output), fp);

fclose(fp);

remove("temp_output.txt"); // 一時ファイルを削除

} else {

printf("エラー:一時ファイルオープンに失敗しました\n");

return 1;

}

if (strcmp(actual_output, expected_output) == 0) {

printf("テスト成功: 出力は期待通りです\n");

return 0;

} else {

printf("テスト失敗: 期待された出力 '%s'、実際の出力 '%s'\n", expected_output, actual_output);

return 1;

}

}

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん