
区别及注意事项
scanf() 函数:
-
scanf() 函数是格式化输入函数,从键盘读取输入的信息。
-
调用格式:scanf("<格式化字符串>", <地址表>)。
-
由于没有限定字符串长度,可能会导致内存泄漏,故C++中不建议使用该函数。
scanf_s() 函数:
- scanf_s() 的功能和scanf() 完全相同,但比后者更加安全。因为 scanf_s() 是针对先前提到的问题而设计的。
- scanf_s() 用于读取字符串时,必须提供一个数字来表明最多读取多少位的字符,这样可以防止溢出。
补充
关于空格的输入:
scanf是这样设计的,以%s输入时,字符中间的空格和其后的内容都会被忽略,即在输出的时候无法完整输出。
如果有读取空格的要求,参考以下代码:
1 |
|




近期评论