c++ - 使用 gets(a) 而不是 cin.getline(a,20) 有什么好处?

标签 c++ arrays string

无论哪种方式,我们都必须定义一个数组来存储字符串。

 char[10];

假设我想在这个数组中存储 smcck。使用 gets(a) 有什么好处?我的老师说,当我们使用 cin.getline(a, 20) 时,数组中的额外空间被浪费了,但是这也适用于 gets(a) 吗?

还有一个额外的问题,数组的空“盒子”中到底存储了什么?

最佳答案

gets() 是一个 C 函数,它不进行边界检查并且被认为是危险的,多年来一直保留它是为了兼容性而不是别的。

您可以查看以下链接来消除您的疑问:

http://www.gidnetwork.com/b-56.html

不要将 C 特性与 C++ 混合使用,尽管 C 的所有特性都适用于 C++,但不推荐这样做。如果您正在使用 C++,那么您应该避免使用 gets()。请改用 getline()。

关于c++ - 使用 gets(a) 而不是 cin.getline(a,20) 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32492900/

相关文章:

c++ - 运行时的动态函数调用(va_list)

c++ - 指针后括号的含义

c++ - 在 C++ 中使用 OpenCV 从摄像机流式传输视频时程序不会启动

c++ - Eclipse C++ 包含错误 : no such file or directory

php - 将冗余的 MySQL 结果解析为结构化数组

javascript - 如何使用 Promise.all() 推迟返回在函数内部构建的数组?

Python:TypeError:无法将 'generator' 对象隐式转换为 str

C 函数在几次迭代后停止

java - Android - 将字符串从 .java 代码提取到 string.xml

C++ 字符串类输入