С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/1077: Рейтинг темы: голосов - 1077, средняя оценка - 4.73
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842

Для чего нужен заголовочный файл conio.h ?

07.09.2009, 10:54. Показов 207483. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
<conio.h>. нам в институте говорили про такое. Я понимаю так,что если этот поток можно использовать без <iostream>. А то данный поток использовался почти в каждой задаче....)))
PS."простите дурочку,но я ещё только учусь"
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.09.2009, 10:54
Ответы с готовыми решениями:

Заголовочный файл conio.h
Я новичок в С++, так что у меня небольшой вопрос. Насколько я понимаю conio.h - заголовочный файл для работы с консолью и он поддерживает...

Для чего заголовочный файл <iomanip>?
#include &lt;iomanip&gt; для чего этот заголовочный файл? какие у него функции? и где можно прочитать про подключаемые файлы?спс!

Для чего conio.h?
объясните для чего этот файл?и было бы лучше чтобы объяснили для чего и другие заг. файлы например math.h-математические выражения...

24
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:11
Цитата Сообщение от Системник Посмотреть сообщение
Я понимаю так,что если этот поток можно использовать без <iostrim>. А то данный поток использовался почти в каждой задаче....)))
<iostream>
не понял, что ты понимаешь?)

Цитата Сообщение от Системник Посмотреть сообщение
<conio.h>. нам в институте говорили про такое.
Это досовская библиотека. Я считаю, что ее лучше не использовать без надобности.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.09.2009, 11:12
Лучший ответ Сообщение было отмечено как решение

Решение

<conio.h> - это такой майкрософтовский велосипед, который непонятно зачем вообще нужен и что с ним делать, но именно в нем валяется _getch();
4
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
07.09.2009, 11:17  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
<iostream>
не понял, что ты понимаешь?)
Вот именно это я и имела в виду. Просто под рукой Визуала пока нет,поэтому вспоминаю,ломая язык и клаву..... В каих случаях данный поток нужен,а в каких лучше побрезговать?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:23
ну в случае если ты пишешь программу на C++. Как бы printf()/scanf() - это СИшные функции. А cout - это объект класса ostream_withassign. В ООП есть такое понятие как инкапсуляция, которая делает ООП-подход более безопасным. Учитывая, что классы не дураки писали - то думаю, cout более рекомендуется к использованию.
1
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
07.09.2009, 11:25  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
<conio.h> - это такой майкрософтовский велосипед, который непонятно зачем вообще нужен и что с ним делать, но именно в нем валяется _getch();
А насколько широк спектр применения данной getch(); функции?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:32
Цитата Сообщение от Системник Посмотреть сообщение
А насколько широк спектр применения данной getch(); функции?
никсы без нее обходится. Зачастую, getch() использует как команду паузы (чтоб экран не тух после выполнения программы). Но если используется библиотека iostream, то паузу можно сделать и cin.get();
1
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
07.09.2009, 11:33  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
никсы без нее обходится. Зачастую, getch() использует как команду паузы (чтоб экран не тух после выполнения программы). Но если используется библиотека iostream, то паузу можно сделать и cin.get();
Никсы - это что вы имеете в виду?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:38
Цитата Сообщение от Системник Посмотреть сообщение
Никсы - это что вы имеете в виду?
Unix/Linux/etc
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.09.2009, 11:38
операционные системы семейства UNIX
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
07.09.2009, 11:57
У меня conio.h самый куцый, насчитывает всего 14 прототипов функций. И всё! Я вот думаю, может, эти прототипы прописать в другом каком-нибудь по-настоящему полезном файле?

С другой стороный, conio.h это графика, насколько я понимаю
С третьей стороны, ничего у меня не рисуется почему-то что с conio.h, что без него

В общем, непонятный какой-то аппендицит. Тем страннее видеть его включение во многих исходникакх.
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 12:25
Цитата Сообщение от kravam Посмотреть сообщение
Я вот думаю, может, эти прототипы прописать в другом каком-нибудь по-настоящему полезном файле?
А смысл?

Цитата Сообщение от kravam Посмотреть сообщение
Тем страннее видеть его включение во многих исходникакх.
Включен, потому что 80% исходников использует функцию getch().
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
07.09.2009, 17:34
Включен, потому что 80% исходников использует функцию getch().
А как они используют ?
Ждут нажатия клавиши в конце ?
Настоящие программы так не пишут.
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
07.09.2009, 17:48
Цитата Сообщение от odip Посмотреть сообщение
А как они используют ?
Ждут нажатия клавиши в конце ?
Настоящие программы так не пишут.
Зато программы для университета или собственного обучения - очень даже пишут.
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 22:40
Цитата Сообщение от odip Посмотреть сообщение
Настоящие программы так не пишут.
Так пишут в книгах. Эту плохую привычку все и перенимают.
1
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 33
14.10.2012, 17:26
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Я считаю, что ее лучше не использовать без надобности.
что именно она может сделать если её изпользовать только для ,,неисчезания" окна..и почему иногда напишешь system('PAUSE'); а компилятор начинает ругаться???
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
15.10.2012, 23:10
В языках Си и Си++ нет такого понятия как "экран", а есть только понятие "поток": Как выделить слово в printf?

Файл conio.h (CONsole Input-Output) - это интерфейсный файл для работы с конкретно DOS'овской консолью. Т.е. непереносимая надстройка над понятиями "поток"
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.10.2012, 00:42
Цитата Сообщение от MotherBoard Посмотреть сообщение
А насколько широк спектр применения данной getch(); функции?
всё что пишем как printf scanf можно записать через cprintf/cscanf

MotherBoard, скомпильте как нибудь на досуге сей код
C
1
2
3
4
5
6
7
8
9
10
#include <conio.h>
 
int main()
{
    
    _cprintf("Enter string less than 32 chars : ");
    char str[32] = {0};_cscanf("%32s", str);
    _cprintf("Your input : %32s\n", str);
    return 0;
}
Кстати _cprintf очень интересная функция и заценить её можно лишь пописав приложений с консольным логом для диалогового окна

Добавлено через 2 минуты

Не по теме:

MotherBoard, а вообще conio.h это наследие старого доброго DOS-a и кроме MSVS присутсвует во всех без исключениях версиях BorlandC до 4-й включительно (дальше не проверял, т.к этот раритет стоит у меня лишь под DOS надобности, которые возникают очень редко)

0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2012, 06:34
Отличительной особенностью geth() является то, что введённый символ не отображается на экране (чтение без эхо-отображения). Читает прямо с консоли, поэтому не ждёт нажатия Enter, для того, чтобы начать читать. В некоторых программах это используется, например для того, чтобы, вообще, не выводилось на экран то, что не нужно (ввод через geth(), потом проверка то ли ввели, что надо, и только после проверки введённое появляется на экране).
1
231 / 12 / 3
Регистрация: 28.12.2012
Сообщений: 192
10.03.2013, 01:25
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) Считывание и форматирование данных напрямую из консоли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2013, 01:25
Помогаю со студенческими работами здесь

Зачем нужен заголовочный файл stdafx.h
Не видит директорию &quot;stdafx.h&quot; в Code::Block, может кто знает как подключить? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Какой заголовочный файл надо для функции ord() ?
Всем привет... Тут такая напасть случилась забыл заголовочный файл(include &lt;???&gt;) для функции ord =)

Предлагаю заголовочный файл с реализацией функций и классов, необходимых для решения задач по комбинаторике
kombinatorika.h Этот заголовочный файл подключается для работы с комбинаторикой. В нём определены и реализованы функциии классы для...

Для чего нужен с++?
Я школьник, мне 16 лет, учусь в 10 классе, планирую поступить на факультет защиты информационных технологий. Сейчас начал изучать с++, не...

Для чего нужен символ \b?
для чего нужен символ \b??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru