c로 짠 프로그램에 움직이는 /를 넣고싶습니다.

yamong의 이미지

모두들 감사합니다. 이제 거의 다 되어 갑니다. 아마 마지막 질문이 될 것 같군요.
제가 짠 프로그램은 쓰레드를 이용해서 배열의 값을 바꾸는 것인데요....
콘솔의 실행 화면에 배열의 값들을 다음과 같이 출력 하고 싶습니다.

[0] [0] [5] [/] [-] [0]
[/] [0] [-] [0] [\] [0]
[5] [4] [/] [-] [0] [3]

이때 /, -, \를 진행중이라는 표시로 움직이게 하고 싶습니다. 리눅스 부팅 할 때 나오는 것 처럼요.^^ (화면이 스크롤 되는 것이 아니라...)
그렇게 할 수는 없나요? 더 좋은 방법 있으면 가르쳐 주셨으면 합니다.
참 그리고 출력의 색깔 바꿀 수 있는 방법도 가르쳐 주셨으면 합니다.

charsyam의 이미지

DOS 라면 gotoxy를
Windows 의 Command 창이라면 Console Function을
Linux 콘솔이라면 curse 라이브러리를 찾아보세요.

그럼 고운 하루

=========================
CharSyam ^^ --- 고운 하루
=========================

ageldama의 이미지

printf의 \b이나 \r을 이용하여 같은 줄이나 이전 문자를
다시 덮어씌우면 간단히 구현하실 수 있습니다.

printf("foo...\\");
for ( int i = 0 ; i < 9999 ; i ++ )
{
	if ( i % 2 )
		printf("\b\\");
	else
		printf("\b/");
}

\b는 backspace 이전 문자의 위치로 현재출력 위치를 되돌립니당
\r은 뭐 한문자 이외에 한줄 뛰어넘기가 아니라 줄의 앞으로 커서를
되돌리므로 새로 스크롤을 하지 않고 현재형에 다시 출력을 할 수 있게 합니다.
(둘 다 덮어씌우면 되는거지요 ^^;)

색상등은 curses나 안시코드를 참고하세요.
(윈도라면 TC의 conio.h같은 기능을 wconio로 구현한 프로젝트도 있던거 같은데... 아니면 직접 다음과 같이 코드를 작성하셔도 됩니다.)

#include <windows.h>
...

//출력핸들. 기본적으로 콘솔어플이니까 새 콘솔대신.
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
...

//색상 및 속성변경
//fg:흰색-볼드 bg:파랑
SetConsoleTextAttribute(hStdOut,FOREGROUND_WHITE|BACKGROUND_BLUE|FOREGROUND_INTENSITY);

간단히 함수로 감싸서 약간 윈도에만 국한되지 않게 하시면 될거 같네요.
MSDN등을 참고하세요. (근데 저런 색상값도 있던가-_-)

----
The future is here. It's just not widely distributed yet.
- William Gibson