cin >> ws vs cin.ignore(numeric_limits<streamsize>::max(), '\n')?
cin >> ws vs cin.ignore(numeric_limits<streamsize>::max(), '\n')?
从阅读 https://en.cppreference.com/w/cpp/io/manip/ws 来看,cin >> ws
似乎完成了 cin.ignore(numeric_limits<streamsize>::max(), '\n')
的意图(丢弃前导空格和换行符)。
还有什么我没有考虑到的区别吗?我很好奇为什么 cin >> ws
不像更复杂的 cin.ignore(numeric_limits<streamsize>::max(), '\n')
那样更常用或更受欢迎,后者也需要 #include <limits>
。
我发现问这个问题的唯一其他问题是:
cin, getline, leading whitespace: ignore vs ws 并没有引起太多关注。
从阅读 https://en.cppreference.com/w/cpp/io/manip/ws 来看,cin >> ws
似乎完成了 cin.ignore(numeric_limits<streamsize>::max(), '\n')
的意图(丢弃前导空格和换行符)。
还有什么我没有考虑到的区别吗?我很好奇为什么 cin >> ws
不像更复杂的 cin.ignore(numeric_limits<streamsize>::max(), '\n')
那样更常用或更受欢迎,后者也需要 #include <limits>
。
我发现问这个问题的唯一其他问题是: cin, getline, leading whitespace: ignore vs ws 并没有引起太多关注。