我目前是C類的簡介。該課程正在使用Visual Studio進行教學,但在分級時,我只是使用一個簡單的Windows批處理腳本來處理所有的作業提交,編譯它們,在測試文件上運行它們,並將輸出重定向到一系列我可以打印的文本文件出去,加註,然後交給學生。整個過程工作得很好,除了當我重定向stdin時,它不會像在同一stdin直接輸入到控制檯時那樣出現在重定向stdout中。因此,格式化爲控制檯的代碼的輸出在重定向的輸出中無法正確顯示。以下文件片段顯示了此問題。有誰知道一個簡單的解決方案?將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:\>
我意識到我看到的行爲是正確的。我想要做的是用腳本僞造控制檯設置的行爲。你有沒有簡單的例子來說明如何用POSIX做到這一點? (我之前已經廣泛地使用過Cygwin/* nix,並且在使用這兩者時都沒有問題,如果這是需要的。) – 2008-10-21 16:36:40