2014-01-24 2 views
3

Я начал программирование на C несколько лет назад. Два наиболее часто используемых файла заголовка были <conio.h> и <stdio.h>. Все мои любимые функции для очистки экрана clrscr() позорной getch() функции от остановки окна от завершения после ее завершения и т.д.Почему мы должны воздерживаться от использования conio.h? Это устарело?

Через несколько лет после того, как я посещал занятие в отношении языков и методов программирования, я спросили воздержаться от использования файла заголовка conio.h. Использует ли conio плохую практику в современном программировании? В чем причина? почему люди так анти-C против использования старых старых библиотек?

+2

'' является нестандартным и не переносным. Используйте кросс-платформенную библиотеку, такую ​​как 'ncurses', если вам нужна функциональность, не предоставляемая стандартными библиотеками C. –

+1

Я думаю, что это только широко поддерживается в консольных приложениях DOS и Windows - вам нужно будет использовать различные API (например, ncurses) для Linux и т. Д. – Rup

+1

http://en.wikipedia.org/wiki/Conio.h – Mat

ответ

8

<conio.h> является нестандартным и не переносным. Используйте кросс-платформенную библиотеку, такую ​​как ncurses, если вам нужна функциональность, не предоставляемая стандартными библиотеками C.

+0

Но можно ли использовать ncurses на окнах? [GNU ncurses page] (http://www.gnu.org/software/ncurses/ncurses.html) перечисляет его в разделе «Планы на будущее». – user694733

+0

Это, безусловно, похоже: http://gnuwin32.sourceforge.net/packages/ncurses.htm –

+1

Могу ли я использовать его в Visual Studio 2010? Поддерживает ли он дополнительные функции по сравнению с 'conio'? – kotAPI

Смежные вопросы