无论哪种方式,我们都必须定义一个数组来存储字符串。
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/