2013-08-23 3 views
-2

저는 최근에 C++ 콘솔 프로그래밍을 망설였습니다. 특정 시간 동안 텍스트를 콘솔에 표시하는 방법이 있는지 궁금 해서요. 그런 다음 텍스트를 더 읽으십시오. 기본적으로 타이머 개체를 만들려고합니다. 당신은 파이썬에 익숙한 경우 또는, 사람이 좀 도와 수 있다면C++의 콘솔 프로그램

import timer 

print "Hello World" 
timer.sleep(2) 
print "Hello Again World" 
timer.sleep(2) 

같은 것을, 나는 사전에 감사 감사하겠습니다 것입니다.

+2

[밀리 수면]의 중복 가능성 (http://stackoverflow.com/questions/4184468/sleep-for-milliseconds) 또는 http://stackoverflow.com/questions/3379139/sleep-function- in-windows-using-c 또는 http://stackoverflow.com/questions/2252372/how-do-you-make-a-program-sleep-in-c-on-win-32/ – user7116

+0

어떤 이유로 나는 수면 기능을 사용하여 수면 (x 밀리 초)이라고 말합니다. 기능이 인식되지 않습니다. 잠자기 기능을 사용하려면 먼저 포함시켜야하는 특정 스트림이 있습니까? – emufossum13

+1

http://stackoverflow.com/questions/1658386/sleep-function-in-c 누군가 이미이 주제를 다뤘습니다. – khajvah

답변

1

여기에는 내장 된 C++ 기능이 없으므로 플랫폼 별 기능을 사용해야합니다.

POSIX 시스템 (리눅스, 맥 OS X, BSD, ...) 당신은 sleep <unistd.h><time.h>에서 nanosleep (실제로는 명목상 나노초의 해상도,하지만 훨씬 더) (두 번째 해상도 지연)를 사용할 수 있습니다에

. 대신 Windows에서 API (<windows.h>) (공칭 해상도 : 밀리 초)를 사용할 수 있습니다. C에서, 주석에 지정된대로

--- 편집 ---

는 ++ 11 std::this_thread::sleep_for있다.

+5

C++ 11에는'std :: this_thread :: sleep_for'가 있습니다. – chris

+0

대단히 고마워, 나는 당신이 말한 것처럼 Windows 용 Sleep API를 사용하여 감았습니다. 또한 변수 s를 전달하는 함수를 만들 수 있었고 1000을 곱하여 (밀리 초에서 초 수와 같음) 해당 변수를 기반으로 절전 기능을 실행합니다. 이렇게하면 밀리 초 단위로 계산하는 대신 함수를 실행하는 데 필요한 시간 (초)을 쉽게 정의 할 수 있습니다. – emufossum13

3

C++ 11 이전에는 시스템 라이브러리를 사용하거나 시스템 라이브러리를 래핑하는 크로스 플랫폼 라이브러리를 사용하는 표준 방법이 없었습니다. C++ 11에서는 스레드와 크로노 라이브러리가 필요합니다.

#include <iostream> 
#include <chrono> 
#include <thread> 
int main() 
{ 
    std::cout << "Hello world" << std::endl; 
    std::chrono::milliseconds twoSeconds(2000); 
    std::this_thread::sleep_for(twoSeconds); 
    std::cout << "Hello Again World" << std::endl; 
} 
+0

... "크로스 플랫폼 라이브러리"는 [boost] (http://www.boost.org/doc/libs/release/doc/html/thread/thread_management.html#thread.thread_management.this_thread.sleep_for)의 약자입니다.) – Cubbi