Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 300, средняя оценка - 4.81
MotherBoard
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,843
07.09.2009, 10:54     Для чего нужен заголовочный файл conio.h ? #1
<conio.h>. нам в институте говорили про такое. Я понимаю так,что если этот поток можно использовать без <iostream>. А то данный поток использовался почти в каждой задаче....)))
PS."простите дурочку,но я ещё только учусь"
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:11     Для чего нужен заголовочный файл conio.h ? #2
Цитата Сообщение от Системник Посмотреть сообщение
Я понимаю так,что если этот поток можно использовать без <iostrim>. А то данный поток использовался почти в каждой задаче....)))
<iostream>
не понял, что ты понимаешь?)

Цитата Сообщение от Системник Посмотреть сообщение
<conio.h>. нам в институте говорили про такое.
Это досовская библиотека. Я считаю, что ее лучше не использовать без надобности.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
07.09.2009, 11:12     Для чего нужен заголовочный файл conio.h ? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
<conio.h> - это такой майкрософтовский велосипед, который непонятно зачем вообще нужен и что с ним делать, но именно в нем валяется _getch();
MotherBoard
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,843
07.09.2009, 11:17  [ТС]     Для чего нужен заголовочный файл conio.h ? #4
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
<iostream>
не понял, что ты понимаешь?)
Вот именно это я и имела в виду. Просто под рукой Визуала пока нет,поэтому вспоминаю,ломая язык и клаву..... В каих случаях данный поток нужен,а в каких лучше побрезговать?
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:23     Для чего нужен заголовочный файл conio.h ? #5
ну в случае если ты пишешь программу на C++. Как бы printf()/scanf() - это СИшные функции. А cout - это объект класса ostream_withassign. В ООП есть такое понятие как инкапсуляция, которая делает ООП-подход более безопасным. Учитывая, что классы не дураки писали - то думаю, cout более рекомендуется к использованию.
MotherBoard
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,843
07.09.2009, 11:25  [ТС]     Для чего нужен заголовочный файл conio.h ? #6
Цитата Сообщение от M128K145 Посмотреть сообщение
<conio.h> - это такой майкрософтовский велосипед, который непонятно зачем вообще нужен и что с ним делать, но именно в нем валяется _getch();
А насколько широк спектр применения данной getch(); функции?
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:32     Для чего нужен заголовочный файл conio.h ? #7
Цитата Сообщение от Системник Посмотреть сообщение
А насколько широк спектр применения данной getch(); функции?
никсы без нее обходится. Зачастую, getch() использует как команду паузы (чтоб экран не тух после выполнения программы). Но если используется библиотека iostream, то паузу можно сделать и cin.get();
MotherBoard
Путешественница
 Аватар для MotherBoard
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,843
07.09.2009, 11:33  [ТС]     Для чего нужен заголовочный файл conio.h ? #8
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
никсы без нее обходится. Зачастую, getch() использует как команду паузы (чтоб экран не тух после выполнения программы). Но если используется библиотека iostream, то паузу можно сделать и cin.get();
Никсы - это что вы имеете в виду?
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:38     Для чего нужен заголовочный файл conio.h ? #9
Цитата Сообщение от Системник Посмотреть сообщение
Никсы - это что вы имеете в виду?
Unix/Linux/etc
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
07.09.2009, 11:38     Для чего нужен заголовочный файл conio.h ? #10
операционные системы семейства UNIX
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
07.09.2009, 11:57     Для чего нужен заголовочный файл conio.h ? #11
У меня conio.h самый куцый, насчитывает всего 14 прототипов функций. И всё! Я вот думаю, может, эти прототипы прописать в другом каком-нибудь по-настоящему полезном файле?

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

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

Цитата Сообщение от kravam Посмотреть сообщение
Тем страннее видеть его включение во многих исходникакх.
Включен, потому что 80% исходников использует функцию getch().
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
07.09.2009, 17:34     Для чего нужен заголовочный файл conio.h ? #13
Включен, потому что 80% исходников использует функцию getch().
А как они используют ?
Ждут нажатия клавиши в конце ?
Настоящие программы так не пишут.
Delphin_KKC
UNIX-way
 Аватар для Delphin_KKC
710 / 494 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
07.09.2009, 17:48     Для чего нужен заголовочный файл conio.h ? #14
Цитата Сообщение от odip Посмотреть сообщение
А как они используют ?
Ждут нажатия клавиши в конце ?
Настоящие программы так не пишут.
Зато программы для университета или собственного обучения - очень даже пишут.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 22:40     Для чего нужен заголовочный файл conio.h ? #15
Цитата Сообщение от odip Посмотреть сообщение
Настоящие программы так не пишут.
Так пишут в книгах. Эту плохую привычку все и перенимают.
Zhor
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 29
14.10.2012, 17:26     Для чего нужен заголовочный файл conio.h ? #16
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Я считаю, что ее лучше не использовать без надобности.
что именно она может сделать если её изпользовать только для ,,неисчезания" окна..и почему иногда напишешь system('PAUSE'); а компилятор начинает ругаться???
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
15.10.2012, 23:10     Для чего нужен заголовочный файл conio.h ? #17
В языках Си и Си++ нет такого понятия как "экран", а есть только понятие "поток": Как выделить слово в printf?

Файл conio.h (CONsole Input-Output) - это интерфейсный файл для работы с конкретно DOS'овской консолью. Т.е. непереносимая надстройка над понятиями "поток"
-=ЮрА=-
Заблокирован
Автор FAQ
16.10.2012, 00:42     Для чего нужен заголовочный файл conio.h ? #18
Цитата Сообщение от 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 надобности, которые возникают очень редко)

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2012, 06:34     Для чего нужен заголовочный файл conio.h ? #19
Отличительной особенностью geth() является то, что введённый символ не отображается на экране (чтение без эхо-отображения). Читает прямо с консоли, поэтому не ждёт нажатия Enter, для того, чтобы начать читать. В некоторых программах это используется, например для того, чтобы, вообще, не выводилось на экран то, что не нужно (ввод через geth(), потом проверка то ли ввели, что надо, и только после проверки введённое появляется на экране).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 01:25     Для чего нужен заголовочный файл conio.h ?
Еще ссылки по теме:

Для чего нужен с++? C++
для чего этот заголовочный файл? C++
Для чего нужен Sizeof C++

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

Или воспользуйтесь поиском по форуму:
Platinumix
43 / 11 / 0
Регистрация: 28.12.2012
Сообщений: 190
10.03.2013, 01:25     Для чего нужен заголовочный файл conio.h ? #20
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) Считывание и форматирование данных напрямую из консоли.
Yandex
Объявления
10.03.2013, 01:25     Для чего нужен заголовочный файл conio.h ?
Ответ Создать тему
Опции темы

Текущее время: 19:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru