cin >> ws vs cin.ignore(numeric_limits :: max(),'\ n')?

问题描述 投票:0回答:1

[从阅读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并没有引起太多关注。

c++ cin
1个回答
1
投票

首先,ignore丢弃all个字符,直到分隔符,不仅是空格。

第二,ignore丢弃,直到说明符分隔符字符为止,它可以是任何字符(不仅是换行符),而ignore忽略前导空格,直到有任何non-space字符为止。

首先,换行符ws是一个空格字符,因此将被ws机械手丢弃。

© www.soinside.com 2019 - 2024. All rights reserved.