문제

더 간단한 삶

나는 프로그래밍 엽을 다시 활성화하기 위해 C로 돌아오고 있습니다. 마지막으로 프로그램을 배웠을 때 MSDOS에서 Turbo C와 함께 일하는 대학에있었습니다. Borland의 친근한 것을 발견하면 간단한 ASCII 애니메이션이 강박 관념이되었습니다. <conio.h> 하나는 멀리 있습니다. 많은 재미가있었습니다 gotoxy 그리고 textcolor 기능과 뱀과 폰과 같은 게임을 쓰기 오래 전에는 아니 었습니다. 언어를 배우는 것은 매우 보람있는 방법이었고, 내가 더 야심을 가졌을 때 각 게임은 나를 더 밀어 붙였습니다.

ncurses

비슷한 게임 유형 프로젝트부터 시작하고 싶습니다. 오늘날, 나는 코너에 먼지가 많은 Linux 기계가있는 Mac에 있습니다. DOSBOX (유비쿼터스 충분한 플랫폼)에서 사랑하는 Turbo C를 출시 할 수는 있지만 BSD 또는 UNIX 플랫폼에서 자연스럽게 컴파일하는 것을 개발할 수 있도록 C를 배우고 싶습니다. 나는 ncurses가 앞으로 나아갈 길이라고 들었지만 GNU 사이트는 크게 내 머리 위로 갔다. 그 날에 나는 친근했다 textmode 기능과 나는 aprint Pong에서 멀리 떨어진 표현. ncurses는 훨씬 더 강력 해 보입니다.

우시

이 상황에 처한 많은 사람들이 있어야합니다. 나는 NCurses가 무엇인지, 그리고 그 일을하는 방법을 이해하는 데 도움이되는 관련 튜토리얼이나 리소스를 찾고 있습니다. 모든 팁이나 유사한 이야기도 큰 관심을 끌 것입니다!

도움이 되었습니까?

해결책

예, ncurses 당신이 찾고있는 도서관입니다. 예를 들어, 다음은 (n) 저주에 해당합니다. gotoxy:

이름

이동, wmove- 저주 창 커서를 움직입니다

개요

   #include <curses.h>

   int move(int y, int x);
   int wmove(WINDOW *win, int y, int x);

설명

이 루틴은 창과 관련된 커서를 y 및 x 열로 이동합니다. 이 루틴은 새로 고침이 호출 될 때까지 터미널의 물리적 커서를 움직이지 않습니다. 지정된 위치는 창의 왼쪽 상단과 관련이 있으며 (0,0).

부록:

귀하의 의견에서 귀하는 Curses Windows에 대해 묻습니다. NCurses Man Page가 이것에 대해 말하는 내용을 실제로 개선 할 수 있다고 생각하지 않으므로, 나는 그것을 인용 할 것입니다.

NCURSES 라이브러리는 Windows라고하는 데이터 구조의 조작을 허용하며, 이는 CRT 화면의 전부 또는 일부를 나타내는 2 차원 배열로 생각할 수 있습니다. 터미널 화면의 크기 인 STDSCR이라는 기본 창이 제공됩니다. 다른 사람들은 Newwin과 함께 만들어 질 수 있습니다.

Curses는 겹치는 창을 처리하지 않으며 패널 (3curses) 라이브러리에서 수행됩니다. 즉, STDSCR을 사용하거나 화면을 타일 된 창으로 나누고 STDSCR을 전혀 사용하지 않을 수 있습니다. 이 둘을 믹싱하면 예측할 수없고 바람직하지 않은 효과가 발생합니다.

Windows는 Window *로 선언 된 변수에 의해 지칭됩니다. 이러한 데이터 구조는 NCURSES 매뉴얼 페이지의 여기 및 다른 곳에 설명 된 루틴으로 조작됩니다. 그 중에서 가장 기본적인 루틴은 이동과 추가입니다. 이러한 루틴의보다 일반적인 버전은 W로 시작하는 이름에 포함되어있어 사용자가 창을 지정할 수 있습니다. W로 시작하지 않는 루틴은 STDSCR에 영향을 미칩니다.

루틴을 사용하여 창을 조작 한 후 새로 고침이 호출되어 사용자의 CRT 화면을 STDSCR처럼 보이도록 CURSES에게 알려줍니다. 창의 문자는 실제로 Chtype 유형 (문자 및 속성 데이터)이므로 문자에 대한 다른 정보도 각 문자와 함께 저장 될 수 있습니다.

따라서 요약하면 전체 창을 안전하게 무시하고 STDSCR 창만 사용할 수 있습니다.

다른 팁

글쎄, BSD 및 Linux와 같은 유닉스와 같은 시스템에서는 확실히 사용하고 싶습니다. ncurses 터미널 에뮬레이터가 당신이하지 않으면 인생을 정말 비참하게 만듭니다.

필요한 기능을 포함하는 간단한 래퍼를 작성하고 다른 OS에 대해 다르게 구현해야 할 것입니다. 창문에는 몇 가지가 있습니다 콘솔 기능 부품이 너무 어렵지 않도록 사용할 수 있습니다.

여기에 시작할 수있는 작은 프로그램이 있습니다.

#include <curses.h>

int main(void) {
  int ch;

  /* The whole program needs error-checking */
  initscr();
  noecho();
  cbreak();
  printw("Hit Ctrl+C to exit ...\n\n");
  for (;;) {
    ch = getch();
    printw("Value of char: %d (%02x)\n", ch, ch);
  }
  endwin();
  return 0;
}

Libcurses 라이브러리를 추가하도록 링커에 알려주십시오.

gcc ... -lcurses

콘솔 IO와 같은 터보 C를 Linux와 같은 도서관이 있습니다. 터보또한 관련 : Devc ++를위한 Conio

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top