2012-04-13 4 views
1

다른 프로그램에서 프로그램을 시작하려고합니다. 1C에서 다른 프로그램의 프로그램을 실행 중

C에서
#include<stdio.h> 
#include<stdlib.h> 
#include<conio.h> 
#include<string.h> 
int main() 
{ 
    printf("Before Execution \n"); 
    system("c:\\Rasmi Personal\\PERSONAL\\C\\Code Block\\C_Test\\bin\\Debug\\C_Test.exe"); 
    printf("\nAfter Execution \n"); 
    return 0; 
} 

: Rasmi 개인 \ 개인 \ C \ 코드 블록 \ C_Test \ 빈 \ 디버그 \ C_Test 프로젝트는 코드가 포함되어 \이

입니다 여기에


그림 아래의 코드

도 2

#include <stdio.h> 
int main() 
{ 
    int x = 10; 
    while(x --> 0) // x goes to 0 
    { 
     printf("%d\n", x); 
    } return 0; 
} 

하지만 첫번째 프로그램이 실행되는 동안 (도 1)의 출력은 아래와 같이 온다.

Before Execution 
'c:\Rasmi' is not recognized as an internal or external command, 
operable program or batch file. 

After Execution 

제발 도와주세요.

추신 : - Windows XP에서 CODE :: BLOCKS를 사용하고 있습니다.

+0

@Mat을 : 나는 동일을했을 때 그 시스템은 찾을 수 없습니다 "로 자신의 오류 경로가 지정되었습니다. " –

+0

디렉토리 이름에 공백이 포함되어 있고 이름 "c"가 대문자 여야하므로 공백에 이스케이프 문자를 사용해야한다고 생각합니다. –

+0

@AmolSharma 공백에 문제가있을 수 있지만 작은 문자로 된 드라이브 이름에는 문제가되지 않을 수 있습니다. WIndows는 파일 이름에 대해 대소 문자를 구별하지 않습니다. –

답변

4

공백이있는 경로 이름을 사용하고 있습니다. 당신이 그렇게 할 때 모든 것이 혼란스러워지며, 올바른 일에 올바른 것을 두지 않으면 아무것도 할 수 없습니다.

공백없이 경로 이름을 사용하는 것이 좋습니다.

여전히 경로 이름에 공백이 일을하려고 시도하는 경우, 다음은 그것을 할 수 있습니다

system("\"c:\\Rasmi Personal\\PERSONAL\\C\\Code Block\\C_Test\\bin\\Debug\\C_Test.exe\""); 
+0

고마워요. 많이 ... 작동했습니다. 하지만 좀 더 정교하게 대답 해 주실 수 있습니까? –

+2

Windows 쉘은 공백을 사용하여 인수와 명령을 구분합니다. 'system()'을 사용하면 명령 행을 쉘에 전달하게됩니다. 쉘은'c : \ Rasmi' 다음에 공백이오고,'c : \ Rasmi.exe' 프로그램이 틀림 없다고 잘못 판단합니다. 오류가 발생하지 않습니다. 전체를 셸로 전달되는 따옴표 안에 넣으면 셸은 따옴표로 묶인 전체 경로를 찾고 해당 프로그램을 실행합니다. –

관련 문제