好的,快速提问。
在 C++ 中,我想忽略空格,所以我知道我需要使用 cin 而可能不是 cin.get 因为“空格”是一个字符。
但是,如果用户输入多个字符,我还想只获取第一个非空白字符并忽略其他字符。如果其余的字符没有被忽略,那么输入将影响我稍后在程序中的其他 cin
所以我猜我应该使用 cin.ignore( ),但我也意识到我不能只添加一个 1000 的参数,因为用户随后必须输入 1000 个字符(至少在我测试时是这样)。那么如何只获取第一个非空白字符呢?
最佳答案
第一个非空白字符(假设输入流不为空)可以通过清除前导空白获得,然后使用下一个字符:
char firstChar = (is >> std::ws).get();
要清除输入流的其余部分,您可以ignore()
所有剩余的字符直到下一个换行符,例如:
is.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
关于c++ - 如何获取 cin 中的第一个非白色字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21653152/