2010-08-22 2 views
2

나는 g ++ 컴파일러 창에 내 첫 번째 C++ 파일을 컴파일하려고 ...C++/G ++ 안녕하세요 세계 응용 프로그램 문제, 어쩌면 컴파일

내 CPP 파일은 다음 -

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout << "Hello World!"; 
    return 0; 
} 

I 명령 프롬프트에서이 입력은 내가 그럼 내 프로그램을 컴파일 할 디렉토리

cd C:\Users\Mark 

에 도착하는

g++ hello.cpp 

파일 이름은 a.exe (기본값)이지만이 파일을 클릭하면 명령 프롬프트가 빠르게 깜박이며 사라졌습니다.

내가 뭘 잘못 했니? Hello World를 말해야합니다! 프롬프트에서 계속 거기에있어, 그렇지?

+0

가능 : http://stackoverflow.com/questions/1908512/c-hold-the-console-window-open – goldPseudo

답변

11

당신이 옳은 것은 아니지만 Windows에서 프로그램을 두 번 클릭하여 시작하면 새로운 명령 프롬프트가 완료되면 닫힙니다. 컴파일을 위해 이미 명령 프롬프트를 열었으므로 거기에서 프로그램을 시작하십시오.

g++ hello.cpp -o hello.exe 
hello.exe 
2

UI에서 명령 줄 파일을 실행하는 것만 큼 정상적인 Windows 동작 - 프로그램이 종료되면 (즉시 사용자의 경우) 프롬프트 창이 닫힙니다.

명령 줄에서 실행하면 계속 실행됩니다. 그렇게하려면 Start > Run > cmd을 입력 한 다음 cd을 디렉토리에 입력하고 a.exe을 입력하십시오.

또는 사용자가 창을 계속 열어 둘 때까지 기다릴 수 있습니다. 테스트에서는 괜찮 았지만 실제로 명령 줄에서 프로그램을 실행하는 사람은 프로그램이 제대로 실행되지 않을 때 실행을 중지하기 위해 키를 눌러야합니다.

1

프롬프트는 프로그램이나 언어와 관련이 없습니다. 그것은 당신의 운영 체제와 관련이 있습니다.

프로그램이 명령 줄에서 실행되어야합니다. 명령 창이 끝나면 (분명히) 명령 창을 그대로 둡니다.

이 실제로는 인 경우 계속 유지할 수있는 트릭이 있지만 이는 단지 유용한 것이며 반드시 좋은 연습은 아닙니다. 하나는 다음과 같습니다 :

int main() 
{ 
    std::cin.get(); // waits for enter 
} 
2

잘못된 것은 없습니다. 프로그램의 마지막에 readline이나 다른 것이 없기 때문에 실행이 끝나면 닫힙니다. 프로그램 종료시 읽기 문자를 추가하여 입력이 종료 될 때까지 기다립니다.

+1

-1 이것은 나쁜 습관입니다. 쉘을 올바르게 사용하십시오. –

+0

와우 ... 안녕하세요 세계 앱입니다. 프로덕션 코드에서 이와 비슷한 것을 사용할 이유가 없습니다. – jdc0589

+1

반면에 "Hello World"앱은 처음부터 끝까지 프로그래머가 작성합니다. 빠르고 정확한 방법이 아닌 올바른 방법을 가르쳐야합니다. –

2

모든 것을 올바르게 완료했습니다. 명령 프롬프트를 열어 둘지 여부는 프로그램과 아무 관련이 없습니다. 명령 프롬프트는 그 자체로 프로그램이며, 기본 동작은 콘솔 응용 프로그램의 실행에 응답하여 시작될 때 프로그램이 끝나면 즉시 닫힙니다.

당신이해야 할 일은 명령 프롬프트를 직접 실행 한 다음 그 아이콘을 두 번 클릭하여 프로그램을 시작하지 않고 프로그램을 실행하는 것입니다.

은 일종의 pause 함수에 대한 호출을 추가하거나 프로그램의 끝에서 입력을 기다리는 나쁜 관행에 해당하지 않습니다. 이 아니어야합니다.은 응용 프로그램에 대한 특정 셸의 원하지 않는 동작에 대한 하드 코딩 습관을 습득해야합니다. 쉘을 올바른 방법으로 사용하여 원하는 동작을 얻으십시오.

+0

경고를 주셔서 감사합니다.이 모든 대답은 훌륭합니다. –

관련 문제