Я в настоящее время преподавательский помощник для Введение в класс C. Класс изучается с использованием Visual Studio, но при классификации я просто использую простой пакетный скрипт Windows для обработки всех представлений присваивания, компиляции их, запуска их в тестовом файле и перенаправления вывода в ряд текстовых файлов, которые я могу распечатать выставлять, разыгрывать и возвращать ученикам. Весь процесс работает очень хорошо, за исключением того факта, что когда я перенаправляю stdin, он не появляется в перенаправленном stdout так же, как это происходит, когда тот же самый 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
Output (консоли)
C:\>example.exe
Enter a number: 42
You entered: 42
C:\>
Output (Перенаправление)
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