私は現在、C 入門クラスのティーチング アシスタントを務めています。クラスは Visual Studio を使用して教えられていますが、採点の際には単純な Windows バッチ スクリプトを使用して、すべての課題提出物を処理し、コンパイルして、テスト ファイルで実行し、出力を印刷可能な一連のテキスト ファイルにリダイレクトします。出して、マークアップして、学生に返します。stdin をリダイレクトすると、同じ stdin がコンソールに直接入力された場合と同じように、リダイレクトされた stdout に表示されないという事実を除いて、プロセス全体は非常にうまく機能します。このため、コンソール用にフォーマットされたコードの出力は、リダイレクトされた出力に正しく表示されません。次のファイル スニペットは、この問題を示しています。簡単な解決策を知っている人はいますか?
ファイル: example.c
#include <stdio.h>
int main()
{
int v;
printf("Enter a number: ");
scanf("%i", &v);
printf("You entered: %d\n", v);
return 0;
}
ファイル: input.txt
42
出力 (コンソール)
C:\>example.exe
Enter a number: 42
You entered: 42
C:\>
出力 (リダイレクト)
C:\>example.exe < input.txt > output.txt
C:\>more output.txt
Enter a number: You entered: 42
C:\>