2014-04-18 3 views
3

C에서 일부 색상의 텍스트를 인쇄하는 코드가 있습니다.Cygwin에서 C 언어로 텍스트를 인쇄하십시오.

리눅스에서 이스케이프 문자 (예 : here)를 사용하고 있습니다.
그것은 SetConsoleTextAttribute

를 사용 에서 Windows을 작동하고 그러나 Cygwin에서 사용할 때 내 문제입니다.
이스케이프 문자가 Cygwin에서 작동하지 않습니다.
그리고 호출에 항상 실패 GetConsoleScreenBufferInfogetLastErrorText() 나에게이 메시지를 제공합니다

잘못된 기능을. (0x1).

제 질문은 : Cygwin 터미널에서 실행중인 C 프로그램의 텍스트를 컬러로 인쇄하는 방법은 무엇입니까? 특수 라이브러리를 설치해야합니까?

+0

Cygwin의 터미널 에뮬레이터 인'cmd' 또는'mintty'는 무엇을 사용하고 있습니까? 몇 가지 코드를 게시 할 수 있습니까? – SzG

+0

리눅스 링크의 C 예제는 Cygwin ('$ TERM == cygwin')과 Cygwin-X ('$ TERM == xterm')에서 작동합니다. '^ ['를'\ e'로 대체하고'echo -e'를 사용하면'echo'가있는 쉘 예제도 작동합니다. –

답변

1

감사합니다. SzG 및 M Oehm 의견입니다.

당신이 말했듯이, M Oehm, 리눅스 예제가 작동 중입니다.

내 코드에서 문제가 발견되었습니다. Linux 대신에 Windows의 색상 값을 사용했습니다. 예를 들어

: 전경 및 배경위한

_ftprintf(target, TEXT("%c[%d;%dm%s%c[K\n"), 
      0x1B, foreground, background, printBuffer, 0x1B); 

값은 정확하지 않았다.

이제 작동합니다.