문제

나는 현재 가르침을 보는 C 클래스입니다.클래스가 가르쳐되고 Visual Studio 를 사용하지만,등급을 매기는 나만을 사용한 간단한 윈도우 배치는 스크립트를 프로세스는 모든 할당 제출물을 컴파일하고 그들을 그들을 실행하 테스트 파일로 출력을 리디렉션의 시리즈 텍스트 파일을 인쇄 할 수 있습니다,표시하고 다시 손을 학생들.전체 프로세스 작동을 제외하고,매우 잘된다는 사실할 때 나는 리다이렉 stdin 하지 않습에 나타나 리디렉션된 표준과 같은 방법을 때 그것이 동일한 표준 입력 입력 직접 console.이 때문에,출력의 코드 형식 콘솔이 올바르게 표시되지 않에동 출력됩니다.다음과 같은 파일을 조각이 문제입니다.을 알고 있나의 간단한 솔루션?

파일:예입니다.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

출력(Console)

C:\>example.exe
Enter a number: 42
You entered: 42

C:\>

출력(Redirection)

C:\>example.exe < input.txt > output.txt

C:\>more output.txt
Enter a number: You entered: 42

C:\>
도움이 되었습니까?

해결책

이것은 예(정확한)니다.입력 없이 stdout.당신 example.exe > output.txt 및 맹목적으로 유형에 42,당신이 기대해야하는 42 도 표에서 한 번만 출력한다.

유일한 솔루션을 제가 생각할 수 있는 터미/쉘 기록을 세션합니다.Windows 명령을 포탄은 가능하지 않습니다.당신이 쓸 수 있는 자신의 터미널을 프록시하지만 공급하는 표준입력으로 학생의 프로그램을 읽 출력,그 자체를 쓰는 동안 모두에 결합 패션이다.그것은 아주 쉽게 포크 exection 다른 프로그램의 및 리디렉션을 하나의 표준 입력/에 POSIX(당신에게 제공하여 Cygwin),I don't know about 일반 DOS/Windows 하지만입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top