每次我做一个 C++ 代码行的快速片段
std::string s;
cin >> s;
我诅咒自己,因为我忘记了它停在空白处而不是整行。
然后,回想起来getline
,我总是对这两种变体感到困惑:
std::string s;
getline (std::cin, s);
和:
char cs[256];
std::cin.getline (cs, sizeof (cs));
除了数据类型之外,这两者之间实际上有区别吗?
在我看来,C++ 方式应该是前者。在什么情况下我会使用后者,因为我可能应该使用真正的字符串而不是空终止字符数组?
而且,既然输入确实应该是输入流的权限,为什么前一部分不是istream
?