为什么C标准包含了很多无用的不安全函数



为什么C标准包含许多不安全的函数,这些函数是无用的(在好的程序中它们不会使用)和有害的,例如getchar ?为什么C标准不包含有用的函数,比如getchgetche ?这只是众多例子中的一个……

乌利希期刊指南我混淆了:gets而不是getchar

你是说gets吗?不要破坏旧的程序。通往过时的道路是漫长的。此外,已被弃用

gets在C99中已弃用,在C11中已删除

C11(ISO/IEC 9899:201x) Forward/6

删除gets函数()

您不能在电传打字机(看起来像打字机的终端)上实现getch()[没有缓冲的读取]。或者任何类型的终端,其中数据存储在终端中,直到您按下回车键。

有一些函数可以做这类事情,但请记住,C是一种应该"在任何东西上运行"的语言。

gets在很多年前就是标准库的一部分,所以它必须保留下来——否则,旧代码无法编译,而且很多人喜欢使用旧代码(因为修复100万行以前可以工作的混乱代码需要大量的工作!)

最新更新