为什么C标准包含许多不安全的功能,这些功能无用(在好的程序中它们不使用)且有害,例如getchar
?为什么C标准不包含有用的功能,例如getch
和getche
?这只是众多例子中的一个......
UPD
我感到困惑:gets
而不是getchar
。
答案 0 :(得分:10)
你的意思是gets
?不打破旧程序。过时的道路很漫长。
此外, 已被弃用。
答案 1 :(得分:2)
gets
在C99中已弃用,在C11中已被删除。
C11(ISO / IEC 9899:201x)转发/ 6
删除了gets function()
答案 2 :(得分:1)
您无法在电传打字机(看起来像打字机的终端)上实现getch()[无缓冲读取]。或者任何类型的终端,其中数据存储在终端中,直到您输入。
有些函数可以执行此类操作,但请记住,C是一种应该“在任何事情上运行”的语言。
很多年前, gets
是标准库的一部分,所以它必须保留 - 否则,旧代码将无法编译,并且很多人喜欢使用旧代码(因为它有很多工作)修复过去工作的100万行乱码!)