为什么我们必须避免使用conio.h?它已过时吗?

4
我几年前开始学习C语言编程。两个最常用的头文件是<conio.h><stdio.h>。我最喜欢的函数有清屏函数 clrscr() 以及阻止窗口在完成后自动关闭的臭名昭著的 getch() 函数等。
几年后,我参加了一门关于编程语言和实践的课程,老师让我们不要再使用conio.h头文件。在现代编程中使用conio是一种不好的做法吗?原因是什么?为什么人们反对使用传统的C库呢?

2
<conio.h>是非标准且不可移植的。如果您需要标准C库未提供的功能,请使用跨平台库,如ncurses - Paul R
1
我认为它只在DOS和Windows控制台应用程序上得到广泛支持 - 在Linux等系统上,您需要使用不同的API(例如ncurses)。 - Rup
1
http://en.wikipedia.org/wiki/Conio.h - Mat
2
@PaulR 您的评论应该是一个答案。 - Grijesh Chauhan
1
好的 - 现在转换为答案... - Paul R
1
@ecatmur 是的,我已经读过了。我的问题是 conio.h 是否已经过时。 - kotAPI
1个回答

9

<conio.h>是非标准和不可移植的。如果你需要标准C库中没有提供的功能,请使用跨平台库,如ncurses


但是ncurses在Windows上可用吗?GNU ncurses页面将其列在“未来计划”部分。 - user694733
看起来是这样的:http://gnuwin32.sourceforge.net/packages/ncurses.htm - Paul R
1
我可以在Visual Studio 2010上使用它吗?相比于“conio”,它支持额外的功能吗? - kotAPI
对于这两个问题的回答都是肯定的:它比“conio”做得更多,例如文本窗口。 - Paul R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接