include conio h что это

Я хотел бы написать программу на C ++ в Ubuntu,
который немедленно реагирует на ввод без нажатия кнопки ввода.
(-> Я не могу использовать заголовок #include по той причине, что я работаю в системе UNIX)

Например:
Я нажимаю на клавиатуре клавишу «а», но вместо того, чтобы показывать «а» в терминале,
программа должна показать «р».

Последние два дня пытался сделать это с помощью шапки #include ,
К сожалению, это не работает.

Поэтому я хотел бы попросить вашего запроса.

С conio.h это было бы так:

Можете ли вы просто опубликовать рабочий исходный код с #include вместо #include ?

Огромное спасибо заранее.

С наилучшими пожеланиями

Спасибо Paulo1205.

Вот мой окончательный код без conio.h:

Решение

Если все, что вам нужно, это быстрая замена старого ConIO getch (), достаточно следующего кода.

Однако обратите внимание, что старый DOS ConIO является урезанной версией пакета UNIX Curses, который предоставляет все необходимое для операций на экране текстового терминала.

РЕДАКТИРОВАТЬ: Во всяком случае, проклятия — это путь. Если вы когда-нибудь захотите разобраться со стрелками или функциональными клавишами, не заботясь о знании escape-последовательностей, связанных с ними, для каждого типа терминала, вам лучше изучить Проклятия и своя версия getch() ,

Кроме того, если вы думаете, что вам когда-нибудь понадобится поддержка символов вне диапазона ASCII с UTF-8 или любым другим многобайтовым представлением, вам лучше использовать ncursesw функция библиотеки get_wch() и его сестры.

Сonio.h (от англ. console input-output — консольный ввод-вывод) — заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS-DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является частью языка программирования Си, стандартной библиотеки языка Си, ISO C или требуемой стандартом POSIX.

Этот заголовочный файл объявляет несколько библиотечных функций для работы с «консольным вводом и выводом» программы. Большинство компиляторов языка Си, предназначенных для DOS, Windows 3.x, Phar Lap, DOSX, OS/2 или Win32 имели этот файл и обеспечивали сопутствующие библиотечные функции в библиотеке Си по умолчанию. Большинство компиляторов языка Си, предназначенных для UNIX и Linux, не имеют этого файла и не обеспечивают сопутствующих библиотечных функций.

Библиотечные функции, объявленные в conio.h, весьма различались в зависимости от компилятора. Первоначально реализованные в Microsoft Visual C++ различные функции привязывались напрямую к нескольким первым функциям DOS, связанным с прерыванием 21h. Но библиотека, поставляемая с Turbo C++ и Borland C++, не использует DOS API, а вместо этого напрямую обращается к видеопамяти для вывода информации и использования сигналов прерывания BIOS.

Компиляторы, предназначенные для операционных систем, отличных от DOS, таких как Linux, Windows и OS/2, обеспечивали различные реализации этих функций.

Проблема с несовместимыми conio.h до сих пор часто всплывает при адаптации старых программ под Studio, применил вчера-сегодня вполне простое и адекватное решение.

Взять вот отсюда оба файла, включить в проект, заинклудить

Конечно, рамочек из псевдографики в Юникодовском проекте не будет, придётся заменить на » * «, к примеру. Ну и вставку asm <> , не работающую в Studio, убрать.

Для корректного отображения русских букв при выполнении программы нужно щелкнуть правой кнопкой мыши по заголовку консольного окна, в контекстом меню выбрать пункт «Свойства» и установить шрифт «Lucida Console» и желаемый размер шрифта. Далее нажать кнопку OK. В XP возникает диалог с 2-мя вариантами — нужно сохранить настройки для всех окон с тем же именем, чтобы не выполнять эту настройку повторно.

Также убедитесь, что файл действительно сохранён в Юникоде (UTF-8, кодовая страница 65001).

Ну и все возможные варианты русификации консоли тоже подключены 🙂 В сумме, вот такой «борландовский консольный интерфейс» условно работает, исходник:

Оба файла в той версии, что использовал, архив .zip:

Скачать coniow.h и coniow.c в архиве .zip (6 Кб)

P.S. Чтобы заработало под Studio 2015, отличающийся более строгими требованиями к неуправляемому коду, пришлось сделать следующее:

  • на всякий случай переименовал coniow.c в coniow.cpp ;
  • поставил первой строкой coniow.cpp директиву
  • в нескольких местах кода coniow.cpp заменил

т.е., выполнил явное приведение типа.

P.P.S. Прикреплённый ниже архив с coniow.c и coniow.h также работает в Visual Studio 2015, например, следующий исходник ( main.cpp из архива):

coniow.zip, внутри папка с тремя файлами (6 Кб)

12.04.2015, 16:24; рейтинг: 9842

Оцените статью