【发布时间】:2012-12-28 08:56:26
【问题描述】:
可能重复:
getc Vs getchar Vs Scanf for reading a character from stdin
我知道 getchar 是一个 宏,它将字符作为输入来自标准输入。
其中 scanf 是一个函数,它将任何数据类型作为标准输入的输入。
因为 getchar 是一个宏为什么它有助于使程序运行得更快,但尽管如此,建议使用 scanf 代替 getchar。 为什么?
我在网上了解到,与 getchar 相比,scanf 是安全的,那么,是什么让 scanf 安全?
【问题讨论】:
-
@iota - 实际上我期待与安全问题相关的答案.. - 源代码
-
我真的不认为 scanf 是一个“安全”的功能。这是来自采访的东西还是类似的东西?编写自己的安全输入函数并不容易,但如果你这样做了,getchar 肯定是你会使用的函数之一[或 fetgc(),这就是 getchar() 最终调用的函数]。
-
但是如果一个人接受用户的整行,那么在这种情况下最好 - getchar 还是 scanf? - 源代码
标签: c