2010-07-07 4 views
0

C++ (윈도우)에서 프로그램을 제어해야하므로 특정 명령 후 마침내 수집 한대로 데이터를 전달해야합니다 그 프로그램은 그 데이터를 사용할 것입니다.명령 줄을 통해 쉘 프로그램을 제어하여 여러 명령어/데이터 제공

prog.exe를 열고 줄 또는 값별로 줄 값을 지정해야합니다. cmd를 통해 수동으로 작동합니다.

나는 system()을 시도했지만 프로그램을 연 후에 중지 할 것이다.

이렇게해야합니다.

//call it 
prog.exe 
//add data 
DataStart 
Data 1 [2 34 454 5]//etc 
DataEnd //the program will take it from here. 

모든

명령 줄하지만 전달되는

+2

표준 입력에서 읽습니다. –

+0

'prog.exe'는 표준 입력에서 데이터를 읽을 것입니까? 당신은 아마 그것을 의미합니다. – Amadan

+1

http://stackoverflow.com/questions/450865/what-is-the-equivalent-to-posix-popen-in-the-win32-api의 복제본은 아니지만 답변이 유용해야합니다. – sarnold

답변

1

당신이 할 수있는 다른 방법이 있습니다 - 프로그램이 입력으로 데이터를 얻기 전에 코드를 통해 방법의 일부를 수행 할 필요가있는 경우, 당신은 그냥 사용할 수 있습니다 표준 입력을 사용하고 사용자에게 데이터를 입력하라는 메시지를 표시합니다. 당신이 입력 변수 값을 사용하려면,하지만 당신은 실행하기 전에를 알 수 있다면, 당신은 당신이 그렇게

prog.exe 1 2 3 

처럼 실행하고 프로그램을 통해 데이터에 액세스 할 명령 줄 인수로 정보를 전달할 수 있습니다 argv [i] 여기서 i는 각 명령 행 인수에 해당합니다.

+0

죄송합니다.이 회신을 잘못된 섹션에 넣어 두었습니다. 명령 줄을 구문 분석 할 수 없기 때문에 값을 모릅니다. 프로그램을 호출하여 쉘에서 시작하면 변수 등으로 사용자 입력을 제외합니다. 이 입력을 받아들이는 프로그램은 내 것이 아닙니다 이 변수를 입력하고 싶을 때마다 매번 쿼리해야합니다. 나는이 데이터를 quried로 추가 할 수 있도록 프 로그를 통계하고 액세스 권한을 남겨 둘 필요가있다. –

0

이 프로그램은 표준 입력에서 읽을 수 있고, 명령 줄 '파이프'당신

예에 다른 프로그램의 결과에서.

datagenerator.exe | prog.exe

datagenerator.exe가 표준 출력에 기록한다고 가정하면 | 문자는 출력을 prog.exe의 표준 입력으로 리디렉션합니다.

관련 문제