2012-03-08 2 views
16

이 질문은 아마도 이전에 요청되었지만 지금까지 답변을 찾을 수 없었습니다. 멀티 라인 입력으로 프로그램을 시작하려고합니다. I.E. 매번 커맨드 라인에 타이핑하고 싶지 않은 (아마도 내가 실수를했을 때). 커맨드 라인 인수를 들여다 보았습니다. 거기에 입력을 붙여 넣었습니다. 그러나 모든 라인이 명령이라고 해석했습니다.Visual Studio에서 디버깅 할 C++ 프로그램에 파이프 입력을 입력하십시오.

입력 할 경우에 도움이 :

8 
c j i b s x k j 
t a o a v y z l 
x r t s w o n m 
z y x e n s p r 
l l o b s t e r 
t g x a a a a a 
j p e l a k e k 
t r s l j e e e 
cat 
test 
baseball 
bake 
paste 
lobster 
stake 
zen 
locks 
rake 
gel 
slack 
jar 
dinosaur 
0 

답변

37

파일에 데이터를 넣어 호출합니다. "명령의 인수"속성 유형에

:

< "path/to/the/file" 
이제

디버거를 시작할 때 해당 파일이 표준 입력을 통해 프로그램에 공급됩니다하거나하지 않고 비주얼 스튜디오 내에서 프로그램을 실행 (그러나 때 디버거)에서 Ctrl-F5를 사용하십시오.

프로젝트와 함께 테스트 파일을 이동하려는 경우 VS 매크로를 사용하여 프로젝트 디렉토리를 지정할 수 있습니다.

+1

또한 보통 데이터 파일을 프로젝트의 일반 파일로 추가하고 '빌드에서 제외'라고 표시합니다. 그런 다음 디버거의 인수를 ' Joe

+0

내가 올바르게 기억한다면 이것은 문서화되어 있지는 않지만 작동합니다! 특히 <가 쉘에 의해 처리되기 때문에 놀랍습니다.이 경우에는 존재하지 않습니다. –

+1

한 가지 알고 있어야 할 점은 VS2008에서 디버거 리다이렉션이 깨져 있다는 것입니다. http://stackoverflow.com/a/3122074/12711 정확하게 2008 년 버전이 고장났다는 것이 명확하지 않습니다. 현재 VS 2008에서 작동하고 있습니다. Win7 x64의 SP1이지만 버그 보고서의 주석은 VS2008 SP1이 일부 사람들을 위해 수정하지 않았 음을 나타냅니다. –

4

당신은 파일로 입력을 저장할 수 있습니다 ("intput.txt"와 같은).. 그런 다음 다음 Visual Studio에서 프로젝트 속성으로 이동하여 "디버깅"카테고리를 선택

freopen("intput.txt", "r", stdin); 
//code to read from stdin. 
fclose(stdin); 
관련 문제