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) | Считывание и форматирование данных напрямую из консоли. |
Смотри также
Ссылки
- Документация от Digital Mars
- IO FAQ — объяснения и пояснения по нестандартному консольному вводу-выводу
- Реализация CONIO в стиле Borland для MinGW/Dev-C++
- Перечень способов получения ввода неформатированной информации с клавиатуры
Wikimedia Foundation . 2010 .
scanf , _scanf_l , wscanf , _wscanf_l
В Visual Studio 2015 printf были объявлены inline и scanf перемещены в заголовки и семейства функций. Если вы переносите старый код, в связи с этими функциями может появиться LNK2019 ошибка компоновщика. Дополнительные сведения см. в журнале изменений Visual C++ 2003 – 2015.
Синтаксис
int scanf( const char *format [, argument]. ); int _scanf_l( const char *format, _locale_t locale [, argument]. ); int wscanf( const wchar_t *format [, argument]. ); int _wscanf_l( const wchar_t *format, _locale_t locale [, argument]. );
Параметры
format
Строка управления форматированием.
argument
Необязательные аргументы.
locale
Используемый языковой стандарт.
Возвращаемое значение
Возвращает число полей, успешно преобразованных и назначенных; Возвращаемое значение не включает поля, которые были прочитаны, но не назначены. Возвращаемое значение 0 указывает, что поля не были назначены.
Если format это NULL указатель, вызывается обработчик недопустимых параметров, как описано в разделе «Проверка параметров». Если продолжение выполнения разрешено, эти функции возвращают EOF и устанавливают для errno значение EINVAL .
Дополнительные сведения об этих и других кодах ошибок см. в разделе errno , _doserrno _sys_errlist и _sys_nerr .
Замечания
Функция scanf считывает данные из стандартного входного потока stdin и записывает данные в расположение, указанное параметром argument . Каждый параметр argument должен быть указателем на переменную, которая имеет тип, соответствующий спецификатору типа в параметре format . Если копирование производится между перекрывающимися строками, поведение не определено.
При использовании scanf для чтения строки всегда следует указывать ширину для формата %s (например, %32s вместо %s ); в противном случае ввод в неправильном формате может легко привести к переполнению буфера. Кроме того, рекомендуется использовать scanf_s , wscanf_s _scanf_s_l _wscanf_s_l или . fgets
wscanf — это версия scanf с расширенными символами; аргумент format для wscanf — строка расширенных символов. wscanf и scanf ведут себя одинаково, если поток открыт в режиме ANSI. scanf сейчас не поддерживает ввод из потока ЮНИКОДА.
Версии этих функций с суффиксом _l идентичны за исключением того, что они используют переданный параметр языкового стандарта вместо языкового стандарта текущего потока.
Сопоставления подпрограмм универсального текста
| TCHAR.H Обычной | _UNICODE и _MBCS не определен | _MBCS Определенные | _UNICODE Определенные |
|---|---|---|---|
| _tscanf | scanf | scanf | wscanf |
| _tscanf_l | _scanf_l | _scanf_l | _wscanf_l |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
| scanf , _scanf_l | |
| wscanf , _wscanf_l | или |
Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью, stdin stdout и stderr , должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_scanf.c // compile with: /W3 // This program uses the scanf and wscanf functions // to read formatted input. #include int main( void ) < int i, result; float fp; char c, s[81]; wchar_t wc, ws[81]; result = scanf( "%d %f %c %C %80s %80S", &i, &fp, &c, &wc, s, ws ); // C4996 // Note: scanf and wscanf are deprecated; consider using scanf_s and wscanf_s printf( "The number of fields input is %d\n", result ); printf( "The contents are: %d %f %c %C %s %S\n", i, fp, c, wc, s, ws); result = wscanf( L"%d %f %hc %lc %80S %80ls", &i, &fp, &c, &wc, s, ws ); // C4996 wprintf( L"The number of fields input is %d\n", result ); wprintf( L"The contents are: %d %f %C %c %hs %s\n", i, fp, c, wc, s, ws); >
71 98.6 h z Byte characters 36 92.3 y n Wide characters
The number of fields input is 6 The contents are: 71 98.599998 h z Byte characters The number of fields input is 6 The contents are: 36 92.300003 y n Wide characters
3 шага, чтобы скачать и исправить ошибки Conio.h
Файлы C/C++/Objective-C Header, такие как conio.h, используют расширение H. Файл считается файлом Developer (C/C++/Objective-C Header) и впервые был создан компанией Program Arts для пакета ПО C-Free 5.0 Pro.
Первый выпуск файла conio.h в ОС Windows 10 состоялся 04/27/2015 в составе Orwell Dev-C++ 5.11. Последнее обновление для C-Free 5.0 Pro состоялось 01/04/2010 [версия файла 5.0 Pro].
В этой статье приведены подробные сведения о conio.h, руководство по устранению неполадок с файлом H и список версий, доступных для бесплатной загрузки.

Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с conio.h и (или) C-Free.


![]()
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Средняя оценка пользователей
![]()
Обзор файла
| Сведения о разработчике и ПО | |
|---|---|
| Программа: | C-Free 5.0 Pro |
| Разработчик: | Program Arts |
| Программное обеспечение: | C-Free |
| Версия ПО: | 5.0 Pro |
| Сведения о файле | |
|---|---|
| Размер файла (байтов): | 1387 |
| Дата первоначального файла: | 11/22/2019 |
| Дата последнего файла: | 12/31/2019 |
| Информация о файле | Описание |
|---|---|
| Размер файла: | 1387 bytes |
| Дата и время изменения файла: | 2019:12:31 10:40:46+00:00 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Что такое сообщения об ошибках conio.h?
Общие ошибки выполнения conio.h
Ошибки файла conio.h часто возникают на этапе запуска C-Free, но также могут возникать во время работы программы. Эти типы ошибок H также известны как «ошибки выполнения», поскольку они возникают во время выполнения C-Free. К числу наиболее распространенных ошибок выполнения conio.h относятся:
- Не удается найти conio.h.
- conio.h — ошибка.
- Не удалось загрузить conio.h.
- Ошибка при загрузке conio.h.
- Не удалось зарегистрировать conio.h / Не удается зарегистрировать conio.h.
- Ошибка выполнения — conio.h.
- Файл conio.h отсутствует или поврежден.
Библиотека времени выполнения Microsoft Visual C++
![]()
Программа: C:\Program Files (x86)\C-Free 5\mingw\include\conio.h
Среда выполнения получила запрос от этого приложения, чтобы прекратить его необычным способом.
Для получения дополнительной информации обратитесь в службу поддержки приложения.

В большинстве случаев причинами ошибок в H являются отсутствующие или поврежденные файлы. Файл conio.h может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с C-Free) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла conio.h может быть вызвано отключением питания при загрузке C-Free, сбоем системы при загрузке или сохранении conio.h, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Как исправить ошибки conio.h — 3-шаговое руководство (время выполнения: ~5-15 мин.)
Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему conio.h. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Восстановление системы» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Восстановление системы»
- Введите пароль администратора (при необходимости).
- Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
- Восстановите компьютер к этому образу резервной копии.
Если на этапе 1 не удается устранить ошибку conio.h, перейдите к шагу 2 ниже.

Шаг 2. Если вы недавно установили приложение C-Free (или схожее программное обеспечение), удалите его, затем попробуйте переустановить C-Free.
Чтобы удалить программное обеспечение C-Free, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Удалить» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Установка и удаление программ»
- Найдите запись для C-Free 5.0 Pro и нажмите «Удалить»
- Следуйте указаниям по удалению.
После полного удаления приложения следует перезагрузить ПК и заново установить C-Free.
Если на этапе 2 также не удается устранить ошибку conio.h, перейдите к шагу 3 ниже.

Шаг 3. Выполните обновление Windows.
Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках conio.h может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Обновить» и нажмите ENTER.
- В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
- Если обновления доступны для загрузки, нажмите «Установить обновления».
- После завершения обновления следует перезагрузить ПК.
Если Центр обновления Windows не смог устранить сообщение об ошибке conio.h, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл conio.h (внимание: для опытных пользователей)
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла conio.h. Мы храним полную базу данных файлов conio.h со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии C-Free . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
- Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы conio.h».
- Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
- Скопируйте этот файл в соответствующее расположение папки C-Free:
Windows 10: C:\Program Files (x86)\C-Free 5\mingw\include\
Windows 10: C:\Program Files\MATLAB\R2019b\sys\lcc\include\
Windows 10: C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.
СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с conio.h. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.
Заголовочный файл conio.h
Заметьте, что непосредственная работа с консолью противоречит философии юниксовских утилит, которые должны одинаково хорошо работать как с входными данными, полученными от пользователя, так и с выводом других программ. Поэтому правильная юниксовская утилита должна читать ввод из stdin и выводить его в stdout/stderr, позволяя эффективно использовать перенаправление потоков ввода-вывода.
Отслеживать
ответ дан 24 апр 2013 в 11:15
207k 28 28 золотых знаков 293 293 серебряных знака 526 526 бронзовых знаков
Ну, и в комплекте с майкрософтовским компилятором такой файл есть
24 апр 2013 в 11:18
Легко сказать «не пользуйтесь». А предложите аналог getch() из стандартных библиотек (описанных в K&R).
24 апр 2013 в 11:19
@VladD, даже больше — весь conio.h в реальных задачах не нужен 🙂 Считывание пароля из консоли там, где есть conio.h.
24 апр 2013 в 12:02
Что-то у вас в голове каша, IMHO. Не думаю, что дальше в чём-то убеждать имеет смысл. Но уверен, вы просто не занимались программированием достаточно, чтобы понять о чём идёт речь.
24 апр 2013 в 16:03
Егорушка, можно подумать, кто-то у Вас отбирает Ваш любимый conio.h. Да он никому нафиг не нужен, пользуйтесь им на здоровье!