Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why use conio.h?

I often see people use the header file of conio.h in C and C++, although I can´t see any major benefits in use of the functions inside of conio.h in comparison to the standard library functions. conio.h has furthermore the disadvantages of being dependent on the Windows/MS-DOS environment and not being part of the C standard.

  • What is the reason to choose functions of conio.h?
  • What do functions inside of conio.h provide, what the functions of the standard C libraries can't?
  • Why to choose the conio library?
like image 954
RobertS supports Monica Cellio Avatar asked Jan 19 '20 16:01

RobertS supports Monica Cellio


2 Answers

The conio.h header is specific to Turbo C, which predates the earliest C standard by several years. It contains routines that are specific to the DOS command line. One function here that's frequently used is getch, which allows reading one character at a time without having to press the Enter key. It also contains gotoxy which allows placing the cursor at a specific location in the terminal

Generally speaking, methods of communicating with the terminal like this are very OS specific, so each has their own (typically non-portable) way of doing it.

This contrasts with the functions in stdio.h which contain functions like printf, scanf, and getchar which work regardless of what type of console is in use.

like image 75
dbush Avatar answered Oct 14 '22 03:10

dbush


What is the reason to choose functions of conio.h?

It has functions that are not provided by the standard library, and people who choose it don't (know to) care about porting to other systems.

What do functions inside of conio.h provide, what the functions of the standard C libraries can´t?

These are some functions that don't have standard alternative. There may be others:

kbhit
clrscr
getch
getche

Standard library potentially could provide the functions. But it doesn't.

Why to choose the conio library?

Because you've been taught to use it, and you don't (know to) care about porting to other systems.

like image 20
eerorika Avatar answered Oct 14 '22 04:10

eerorika