2013-01-14 4 views
2

мне нужен перекрестный способ платформы обработки этого:консоли ввода - очистка после нажатия ввести

Когда я нажимаю войти в «Cin» линии, я хочу, чтобы очистить все обработано, включая символ новой строки.

Возможно ли это? Или мне нужно найти реализацию crossplatform getch() и сделать это именно так?

+0

Пожалуйста, объясните, что вы имеете в виду под «очистить все обработанное». Это может означать разные вещи для разных людей. –

+0

Очистить введенный текст и ввести новую строку, нажав enter. – user1873947

+0

Я думаю, что это сводится к 'getch()' (== POSIX standard). Вот почему я попросил ваши фактически используемые ОС в вашем [последнем вопросе] (http://stackoverflow.com/questions/14324663/cross-platform-way-of-having-non-blocking-console-input). Есть (по крайней мере частичные) реализации, совместимые с POSIX, для linux и windows на самом деле (то же самое для ncurses). Я также видел намеки на то, что 'getch()' устарел для использования в Windows, и следует использовать ['_getch()'] (http://msdn.microsoft.com/en-us/library/078sfkak%28v= vs.80% 29.aspx). –

ответ

4

Единственный кросс-платформенный способ, который я вижу, - отказаться от стандартных потоков ввода и вывода в целом и использовать что-то вроде ncurses (у которых есть порт Windows).

Он может обрабатывать клавиши чтения напрямую, с эхом или без него, а также может очищать экран.

Смежные вопросы