콘솔 좌표이동, 색상변경함수(http://topnanis.tistory.com/173)와 함께 자주 사용됩니다.
#include <iostream> //rand
#include <time.h> //time
#include <Windows.h> //sleep, rand
//#include <stdlib.h> //rand
using namespace std;
int main()
{
srand(time(NULL));
while(true)
{
Sleep(100); //Milliseconds
cout<<rand()%100<<" "; //less 100
}
return 0;
}
* Rand
참고로 rand는 같은 패턴의 난수를 발생시키므로 변경되는 seed값이 들어있는 srand(time(NULL));를 한 줄 위에 포함시켜 주면 패턴이 눈에 띄지 않습니다. 하지만 time(NULL)이라는 것이 작은 수의 일정한 증가이므로 좌표에 찍다보면 만족스럽지 못한 결과값이 출력 되기도 합니다. 그럴 때 저는 랜덤을 곱(rand()*rand()*n 이런식)하거나 millisecond단위의 seed를 썼던것 같은데.. C에서는 별도로 만들어야 되나봐요.
* Sleep
sleep을 다른 곳에서는 단위가 second라고도 하는데.. 저는 Milliseconds여서 1000이 일초가 나왔어요. for문을 천번이니 만번이니 돌리는 것보다야 정확하겠지만 실제로 시계프로그램을 만들정도로 신뢰 할만한 수준은 나오지 않지요, CPU 사용량에 따라서도 조금씩 오차가 생기기도 하니까.
절대적인 시간까지는 아니더라도 그럴때는 date를 연결하는 편이 좋습니다. if(현재시간 - 전시간 == 10초) 이런 식으로 말이죠.
'2_ 바삭바삭 프로그래밍 > C and C++' 카테고리의 다른 글
C++ - boost 를 사용한 간단한 Thread 실행예제 (3) | 2012.09.04 |
---|---|
C++ - 쉽게 설명한 링크드리스트(Linked list) 이야기 (3) | 2012.05.30 |
C++ - gotoxy(좌표이동), setcolor(색상변경) (0) | 2012.05.24 |
C++ - 쉽게 설명한 포인터(point)와 레퍼런스(reference) 이야기 (1) | 2012.05.22 |
Visual C++ 2010 실행 시 콘솔창이 바로 닫혀 버릴때... (2) | 2012.05.21 |