iostream
Добавлено: 25 июл 2004, 23:43
как на с++ написать что-то вроде
istream &operator(istream&,char&);
чтоб с cin вводило все сразу без буферизации?
на с выглядит так:
#include <stdio.h>
#include <fcntl.h>
#include <termio.h>
char ReadKey(void)
{
struct termio port; //это чтоб управлять терминалом
struct termio save; //это чтоб потом восстановить то че испортили
char key;
ioctl(0,TCGETA,&save); //получ. текущие установки терминала
port=save;
port.c_lflag=0; //чтоб не ждал /n
//если этот флаг установлен в ненулевое значение то при нажатии
//любой клавиши она сравнивается с управляющей и если совпадает
//то вызывается сигнал.
//а если сигнала нет то read и не ждет /n
ioctl(0,TCSETAW,&port); //устанавливаем свои параметры терминала
read(0, &key, 1);
ioctl(0,TCSETAW,&save);//восстанавливаем старые установки
return key;
}
istream &operator(istream&,char&);
чтоб с cin вводило все сразу без буферизации?
на с выглядит так:
#include <stdio.h>
#include <fcntl.h>
#include <termio.h>
char ReadKey(void)
{
struct termio port; //это чтоб управлять терминалом
struct termio save; //это чтоб потом восстановить то че испортили
char key;
ioctl(0,TCGETA,&save); //получ. текущие установки терминала
port=save;
port.c_lflag=0; //чтоб не ждал /n
//если этот флаг установлен в ненулевое значение то при нажатии
//любой клавиши она сравнивается с управляющей и если совпадает
//то вызывается сигнал.
//а если сигнала нет то read и не ждет /n
ioctl(0,TCSETAW,&port); //устанавливаем свои параметры терминала
read(0, &key, 1);
ioctl(0,TCSETAW,&save);//восстанавливаем старые установки
return key;
}