为什么要使用;“conio.h”;编程不是好习惯吗?

为什么要使用;“conio.h”;编程不是好习惯吗?,c,C,我参加过许多在线编码比赛,他们通常提到#include表示conio.h标题不能使用。 我不知道此标题中包含的所有函数,但我想知道为什么这不是一个好的编程习惯? 如果有人能解释,它的一些功能就不应该被使用 示例clrsc() 这不是标准 […]它不是C标准库的一部分,ISO C也不是由POSIX定义的 一些编译器支持它,但它们依赖于平台,很难在它们之间编写可移植的代码。嗯,conio.h是特定于平台的。如果您尝试在Linux上编译,您的代码可能无法编译。此外,使用函数操作控制台窗口会使程序的可重

我参加过许多在线编码比赛,他们通常提到
#include
表示
conio.h
标题不能使用。 我不知道此标题中包含的所有函数,但我想知道为什么这不是一个好的编程习惯? 如果有人能解释,它的一些功能就不应该被使用

示例clrsc()

这不是标准

[…]它不是C标准库的一部分,ISO C也不是由POSIX定义的


一些编译器支持它,但它们依赖于平台,很难在它们之间编写可移植的代码。

嗯,
conio.h
是特定于平台的。如果您尝试在Linux上编译,您的代码可能无法编译。此外,使用函数操作控制台窗口会使程序的可重用性低于仅使用标准输入和输出时的可重用性(无法如此轻松地重定向stdin/stdout)


如果您正在开发富控制台应用程序,那么除了平台特定和非标准之外,您还可以使用跨平台库,例如
ncurses

过时。