好的,我的问题很简单..
我们都知道,是多么糟糕的gets是C&因此建议是使用fgets.
现在在C++我们使用std::string s和std::getline(std::cin, s)..现在我的问题是,getline()具有相同的边界检查问题,如gets()..
如果是,则char input[100]&cin.getline(input,sizeof(input));将用于char数组但是使用字符串时我可以写这个吗?
std::string s;&cin.getline(s, s.capacity());...这是合适的还是我可以写的其他东西?
不,getline没有同样的问题gets.该函数具有对字符串的引用,因此可以调用字符串size和capacity成员函数以进行边界检查.但是,它不需要这样做,因为它还可以访问字符串的大小调整成员函数,例如push_back,resize或者operator+=,它将自动处理边界检查,必要时重新分配.
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |