使用时:
string s;
cin >> s;
字符串可以包含哪些字符,哪些字符将停止读取字符串。
std::ctype_base::space
std::istream
是使它停止从源中读取更多字符的分隔符。
std::ctype_base::space
指的是空格和换行符。这意味着,s
在阅读时可以包含除空格和换行符之外的任何字符cin>>s
。
如果您还想阅读包含空格的完整行,那么您可以使用getline()
使用换行符作为分隔符的函数。还有它的重载函数,如果你想提供你自己的分隔符,你可以使用它。有关更多详细信息,请参阅它的文档。
您还可以使用可以设置为的自定义语言环境std::istream
。您的自定义语言环境可以定义一组字符作为分隔符,由std::istream
. 你可以在这里看到一个这样的例子(见我的解决方案):
ch
分隔符是std::isspace( ch,
std::sin.getlocale() )
返回 true的任何字符。换句话说,无论被灌输的语言环境认为“空白”是什么。(虽然我认为这有点滥用,但我知道程序员会创建特殊的语言环境,例如考虑,
空格,并用于
>>
读取逗号分隔的列表。)