gpt4 book ai didi

c++ - 为什么有两个不同的 getline() 函数(如果确实有)?

转载 作者:IT老高 更新时间:2023-10-28 13:03:14 25 4
gpt4 key购买 nike

每次我快速编写一段 C++ 代码行

std::string s;
cin >> s;

我诅咒自己,因为我忘记了它停在空白处而不是整行。

然后,在想起 getline 时,我总是对这两种变体感到困惑:

std::string s;
getline (std::cin, s);

和:

char cs[256];
std::cin.getline (cs, sizeof (cs));

这两者除了数据类型之外真的有区别吗?

在我看来,C++ 方式应该是前者。在什么情况下我会使用后者,因为我可能应该使用真正的字符串还是以 null 结尾的字符数组?

而且,既然输入确实应该是输入流的权限,为什么istream的前一部分不是?

最佳答案

全局getline()函数适用于 C++ std::string对象。

istream::getline()方法适用于“经典”C 字符串(指向 char 的指针)。

关于c++ - 为什么有两个不同的 getline() 函数(如果确实有)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com