getline和get一样吗

Is getline is as same as gets?

本文关键字:一样 get getline      更新时间:2023-10-16

好的,所以我的问题很简单。。

我们都知道CCD_ 1在CCD_;因此建议使用CCD_ 3。

现在在C++中,我们使用std::string sstd::getline(std::cin, s)。。现在我的问题是,getline((是否与gets((有相同的边界检查问题。。

如果是,则对于CCD_;cin.getline(input,sizeof(input));将适用于char数组,但在使用字符串时我可以写这个吗?

std::string s;&gets0。。。这合适吗?或者我可以写其他什么吗??

否,getlinegets没有相同的问题。该函数具有对字符串的引用,因此可以调用字符串的sizecapacity成员函数进行边界检查。然而,它不需要这样做,因为它还可以访问字符串的调整大小成员函数,如push_backresizeoperator+=,这些函数将自动处理边界检查,并在必要时重新分配。

get((将分隔符留在队列中,这样您就可以将其视为下一个输入的一部分。getline((将丢弃它,因此下一个输入将在它之后。

如果您谈论的是控制台输入中的换行符,那么丢弃它是完全合理的,但如果我们考虑的是文件中的输入,则可以使用下一个字段的开头作为"分隔符"。