Считать символ с консоли без эха без getch()
От: Brother2007  
Дата: 21.12.06 15:16
Оценка:
Добрый вечер!

Подскажите пожалуйста как считать символ с консоли без эха не используя getch()? Эта функция определена в в conio.h, но в моей библиотеке его нету


23.12.06 00:51: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: Считать символ с консоли без эха без getch()
От: Alex Dav Россия  
Дата: 21.12.06 15:21
Оценка:
Здравствуйте, Brother2007, Вы писали:

B>Добрый вечер!


B>Подскажите пожалуйста как считать символ с консоли без эха не используя getch()? Эта функция определена в в conio.h, но в моей библиотеке его нету


а iostream, stdio у тебя есть?
Re[2]: Считать символ с консоли без эха без getch()
От: Brother2007  
Дата: 21.12.06 15:24
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>Здравствуйте, Brother2007, Вы писали:


B>>Добрый вечер!


B>>Подскажите пожалуйста как считать символ с консоли без эха не используя getch()? Эта функция определена в в conio.h, но в моей библиотеке его нету


AD>а iostream, stdio у тебя есть?


да, и STL вроде полная
Re[3]: Считать символ с консоли без эха без getch()
От: Alex Dav Россия  
Дата: 21.12.06 15:28
Оценка:
Здравствуйте, Brother2007, Вы писали:

B>Здравствуйте, Alex Dav, Вы писали:


AD>>Здравствуйте, Brother2007, Вы писали:


B>>>Добрый вечер!


B>>>Подскажите пожалуйста как считать символ с консоли без эха не используя getch()? Эта функция определена в в conio.h, но в моей библиотеке его нету


AD>>а iostream, stdio у тебя есть?


B>да, и STL вроде полная


ну так читай из потока и все cin >> или я чего то не понял?
Re[4]: Считать символ с консоли без эха без getch()
От: Brother2007  
Дата: 21.12.06 15:29
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>Здравствуйте, Brother2007, Вы писали:


B>>Здравствуйте, Alex Dav, Вы писали:


AD>>>Здравствуйте, Brother2007, Вы писали:


B>>>>Добрый вечер!


B>>>>Подскажите пожалуйста как считать символ с консоли без эха не используя getch()? Эта функция определена в в conio.h, но в моей библиотеке его нету


AD>>>а iostream, stdio у тебя есть?


B>>да, и STL вроде полная


AD>ну так читай из потока и все cin >> или я чего то не понял?


мне нужно чтобы вводимый символ не отображался на консоли
Re[5]: Считать символ с консоли без эха без getch()
От: Peregrin  
Дата: 21.12.06 15:49
Оценка:
Здравствуйте, Brother2007, Вы писали:

B>мне нужно чтобы вводимый символ не отображался на консоли


void SetConsoleEcho(bool on) {
#ifdef WIN32
  HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
  if ((hIn == INVALID_HANDLE_VALUE) || (hIn == NULL))
    return;

  DWORD mode;
  if (!GetConsoleMode(hIn, &mode))
    return;

  if (on) {
    mode = mode | ENABLE_ECHO_INPUT;
  } else {
    mode = mode & ~ENABLE_ECHO_INPUT;
  }

  SetConsoleMode(hIn, mode);
#else
  if (on)
    system("stty echo");
  else
    system("stty -echo");
#endif
}
Re[6]: Считать символ с консоли без эха без getch()
От: Brother2007  
Дата: 21.12.06 15:53
Оценка:
Здравствуйте, Peregrin, Вы писали:

P>Здравствуйте, Brother2007, Вы писали:


B>>мне нужно чтобы вводимый символ не отображался на консоли


P>
P>void SetConsoleEcho(bool on) {
P>#ifdef WIN32
P>  HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
P>  if ((hIn == INVALID_HANDLE_VALUE) || (hIn == NULL))
P>    return;

P>  DWORD mode;
P>  if (!GetConsoleMode(hIn, &mode))
P>    return;

P>  if (on) {
P>    mode = mode | ENABLE_ECHO_INPUT;
P>  } else {
P>    mode = mode & ~ENABLE_ECHO_INPUT;
P>  }

P>  SetConsoleMode(hIn, mode);
P>#else
P>  if (on)
P>    system("stty echo");
P>  else
P>    system("stty -echo");
P>#endif
P>}
P>


Спасибо! Сейчас будем проверять
Re[7]: Считать символ с консоли без эха без getch()
От: Brother2007  
Дата: 22.12.06 09:30
Оценка:
B>>>мне нужно чтобы вводимый символ не отображался на консоли

P>>
P>>void SetConsoleEcho(bool on) {
P>>#ifdef WIN32
P>>  HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
P>>  if ((hIn == INVALID_HANDLE_VALUE) || (hIn == NULL))
P>>    return;

P>>  DWORD mode;
P>>  if (!GetConsoleMode(hIn, &mode))
P>>    return;

P>>  if (on) {
P>>    mode = mode | ENABLE_ECHO_INPUT;
P>>  } else {
P>>    mode = mode & ~ENABLE_ECHO_INPUT;
P>>  }

P>>  SetConsoleMode(hIn, mode);
P>>#else
P>>  if (on)
P>>    system("stty echo");
P>>  else
P>>    system("stty -echo");
P>>#endif
P>>}
P>>


А можно другим способом, через STL например?
Re[8]: Считать символ с консоли без эха без getch()
От: Murom Россия  
Дата: 22.12.06 10:32
Оценка:
Здравствуйте, Brother2007, Вы писали:

B>>>>мне нужно чтобы вводимый символ не отображался на консоли


B>А можно другим способом, через STL например?


STL оперирует понятием "поток", и ничего не знает о том, что же такое консоль.
Так что с помощью STL такое не возможно.
- Eugeny
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.