Difference between gets vs scanf vs fgets in C programming
本问题已经有最佳答案,请猛点这里访问。
我最近开始学习C编程语言,并在3本书中看到了这三个输入函数。 因此,在考虑效率时,我几乎不会混淆使用哪一个。
So I'm little confused about which one to use when efficiency is considered.
没有一个I / O速度很慢。如果您需要效率,请不要执行I / O。或者,更有可能的是您实际上并不需要效率,而是需要I / O,并且过早地进行了优化。
除此之外,这是区别:
-
gets() 是危险的,已从标准中删除,请不要使用它。 -
scanf() 是标准配置,但笨拙且难以正确使用。除了非常专业的用例之外,它也不值得打扰。 -
fgets() 更易于正确使用,它是获取原始的不受信任的用户输入(即一般而言,用户输入)的首选方法。它也可以从任何FILE * 流中读取,而不仅仅是stdin 。
因此,
最后,
切勿使用
避免使用
尽管有时很不方便,但您应该使用