Зачем использовать conio.h?
Я часто вижу, как люди используют заголовочный файл conio.h в C и C ++, хотя я не вижу каких-либо существенных преимуществ в использовании функций внутри conio.h по сравнению со стандартными библиотечными функциями. Кроме того, conio.h имеет недостатки в зависимости от среды Windows / MS-DOS и не является частью стандарта C.
- В чем причина выбора функций conio.h ?
- Что обеспечивают функции внутри conio.h , чего не могут функции стандартных библиотек C?
- Зачем выбирать библиотеку conio ?
2 ответа
Заголовок conio.h специфичен для Turbo C, который предшествует раннему стандарту C на несколько лет. Он содержит подпрограммы, специфичные для командной строки DOS. Здесь часто используется одна функция getch , которая позволяет читать по одному символу за раз, не нажимая клавишу Enter. Он также содержит gotoxy , который позволяет поместить курсор в определенное место в терминале
Вообще говоря, способы взаимодействия с терминалом, подобные этому, очень специфичны для ОС, поэтому у каждого есть свой (обычно непереносимый) способ сделать это.
Это отличается от функций в stdio.h, которые содержат такие функции, как printf , scanf и getchar , которые работают независимо от того, какой тип консоли используется.
В чем причина выбора функций conio.h?
У нее есть функции, которые не предоставляются стандартной библиотекой, и люди, которые ее выбирают, не заботятся о переносе на другие системы.
Что обеспечивают функции внутри conio.h, чего не могут функции стандартных библиотек C?
Это некоторые функции, которые не имеют стандартной альтернативы. Там могут быть другие:
Стандартная библиотека потенциально может предоставлять функции. Но это не так.
Почему стоит выбрать библиотеку conio?
Потому что вас научили его использовать, и вы не заботитесь о портировании на другие системы.
Conio.h
conio.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, обеспечивали различные реализации этих функций.
Члены-функции
| int kbhit(void) | Определяет, было ли нажатие клавиш клавиатуры |
| int ungetch(int c) | Помещает символ c обратно в буфер клавиатуры. |
| int getch(void) | Считывает символ напрямую из консоли без использования буфера и echo-вывода. |
| int getche(void) | Считывает символ напрямую из консоли без использования буфера, но с использованием echo-вывода. |
| int putch(int c) | Функция _putch выводит символ c в консоль без буферизации. В случае успеха возвращает c. В противном случае возвращает EOF. |
| char *_cgets(char *buffer) | Считывает строку из консоли и хранит ее в массиве, указывающим на буфер. buffer[0] , должен содержать максимальную длину (в символах) строки, то есть сколько символов нужно считать. Второй элемент массива buffer[1] указывает «где». _cgets хранит текущую длину строки. _cgets считывает символы до символа возврата, перевода строки или указанного максимума числа символов. |
| int _cprintf(const char *format, arg0. argn) | Форматирование и вывод («печать») строки напрямую в консоль. |
| int _cputs(const char *string) | Вывод строки напрямую в консоль. |
| int _cscanf(char *format, arg0. argn) | Считывание и форматирование данных напрямую из консоли. |
Смотри также
Ссылки
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Conio.h» в других словарях:
conio.h — Conio redirects here. For the profanity, see wikt:coño. conio.h is a C header file used in old MS DOS compilers to create text user interfaces. It is not described in The C Programming Language book, and it is not part of the C standard library,… … Wikipedia
Conio.h — is a header file used in old MS DOS compilers to create text user interfaces, however, it is not part of the C programming language, the C standard library, ISO C or required by POSIX.This header declares several useful library functions for… … Wikipedia
conio.h — (от англ. console input output консольный ввод вывод) заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является … Википедия
conio — Element prim de compunere savantă cu semnificaţia praf , în legătură cu praful , de (la) praf . [pron. ni o , var. coni . / < fr. conio , cf. gr. konis – praf]. Trimis de LauraGellner, 18.01.2005. Sursa: DN … Dicționar Român
Conio. — Conio. (v. gr. Konia, Staub), Staub … Pierer’s Universal-Lexikon
conio — / kɔnjo/ s.m. [lat. cŭneus ]. 1. a. [utensile per stampare monete o medaglie] ▶◀ punzone. ⇑ stampo. b. [operazione ed effetto del coniare, anche fig.] ▶◀ battitura, coniatura, coniazione. 2. (fig., spreg.) … Enciclopedia Italiana
conio — 1cò·nio s.m. CO 1a. stampo in acciaio a forma di punzone su cui vengono incisi disegni, figure o iscrizioni che si vogliono imprimere in rilievo su monete o medaglie; l impronta che ne risulta: riconoscere una moneta dal conio 1b. l operazione… … Dizionario italiano
conio — s. m. 1. punzone, torsello 2. (est.) impronta, stampo 3. cuneo, zeppa 4. coniazione, coniatura FRASEOLOGIA fior di conio, moneta che non ha mai circolato □ nu … Sinonimi e Contrari. Terza edizione
conio — <
Заголовочный файл conio.h
Что за заголовочный файл такой <conio.h>, и для чего он нужен? В K&R такой не описывают. Заранее спасибо.
<conio.h> содержит описание нестандартной библиотеки для работы с консолью ( clrscr , kbhit и тому подобное). Поставляется, ЕМНИП, со старыми Борландовскими компиляторами. Не пользуйтесь ей, если хотите, чтобы ваш код компилировался на более современных компиляторах.
Заметьте, что непосредственная работа с консолью противоречит философии юниксовских утилит, которые должны одинаково хорошо работать как с входными данными, полученными от пользователя, так и с выводом других программ. Поэтому правильная юниксовская утилита должна читать ввод из stdin и выводить его в stdout/stderr, позволяя эффективно использовать перенаправление потоков ввода-вывода.