The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"char c = getch(); ???"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"char c = getch(); ???"
Сообщение от alexey emailИскать по авторуВ закладки on 31-Янв-02, 15:58  (MSK)
hi.

САБЖ как??? (linux)

[cut]
#include <curses.h>

...
char c = getch();
...
[cut]

ругается на stdscr и wgetch

я честно говоря довольно долго уже заморачиваюсь.
Мне нужно сдклать максимально просто - чем меньше кода тем лучше...
Может примерчики есть???

Я уже спрашивал сдесь, ответ дали (спасибо) но там довольно наворочено все слишком грамозко...

Довольно срочно нужно. Спецы - помогите плз.

Заранее спасибо...
Всего самого доброго.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: char c = getch(); ???"
Сообщение от romanSA Искать по авторуВ закладки on 31-Янв-02, 17:14  (MSK)
А кто ругается? компилер или линкер?
Если линкер, то нужно собирать с библиоткой curses:
g++ ... -lcurses
или
g++ ... -lncurses
Пример программы:

/* curses C++ example
*/
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <curses.h>

#define PROMPT_STRING "press ESC to exit or any key to view key code> "

void main (int argc, char** argv)
{
  initscr (); // инициализация curses(обязательно)
  cbreak ();  // обрабатывать клавиши сразу по нажатию
  noecho ();  // не отображать вводимые символы
  nonl ();    //
  keypad (stdscr, TRUE); // интерпретировать нажание на клавишу Fx, как ввод одного символа, иначе ввод будет выглядеть как символ ESC, за которым следует другой символ
  meta (stdscr, TRUE);   // перевод терминала в 8-битный режим

  clear (); // очистка экрана

  int      ch = 0;
  char     str [256];

  do
  {
    if (ch > 0)
    {
      if (ch <= ' ' || (ch > 'Z' && ch > 'z'))
        sprintf (str, "   symbol is BLANK or SPEC, code is (%d)  ", ch);
      else
        sprintf (str, "   symbol is '%c', code is (%d)           ", ch, ch);

      move (LINES / 2 + 2, (COLS - strlen (str)) / 2);
      addstr (str); // запись строки в текущую позицию
    }

    move   (LINES - 1, 0); // установка текущей позиции
    addstr (PROMPT_STRING);

  } while ((ch = getch  ()) != 27);

  endwin ();
  exit (0);
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: char c = getch(); ???"
Сообщение от romanSA Искать по авторуВ закладки on 31-Янв-02, 17:19  (MSK)
Извини, вот ещё забыл:
Нужно делать именно
int ch = getch ()
а не
char ch = getch ()
поскольку getch () возвращает значения из гораздо более широгого диапазона чем char. И при приведении к char можно получить совсем не то, что вводили.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: char c = getch(); ???"
Сообщение от alexey emailИскать по авторуВ закладки on 02-Фев-02, 15:57  (MSK)
>Извини, вот ещё забыл:
>Нужно делать именно
>int ch = getch ()
>а не
>char ch = getch ()
>поскольку getch () возвращает значения из
>гораздо более широгого диапазона чем
>char. И при приведении к
>char можно получить совсем не
>то, что вводили.


Спасибо - буду маслать... :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру