使用时:
string s;
cin >> s;
字符串可以包含哪些字符,哪些字符将停止对字符串的读取。
std::ctype_base::space
是std::istream
的分隔符,使其停止从源读取更多字符。
std::ctype_base::space
表示空白和换行符。也就是说,当使用cin>>s
进行读取时,s
可以包含除空白和换行符之外的任何字符。
如果您也想读取包含空格的完整行,那么您可以使用getline()
函数,该函数使用换行符作为分隔符。还有它的重载函数,如果您想提供自己的分隔符,可以使用它。有关更多详细信息,请参阅其文档。
您还可以使用自定义的区域设置,可以将其设置为std::istream
。您的自定义区域设置可以定义一组要由std::istream
作为分隔符处理的字符。你可以在这里看到一个这样的例子(见我的解决方案):
将std::字符串拆分为向量的正确方法<字符串>
分隔符是std::isspace( ch,
std::sin.getlocale() )
返回true的任何字符ch
。换句话说,不管充满活力的场所考虑到了"白色空间"。(尽管我会我知道程序员会创建特殊地区,例如考虑,
空白,并使用>>
读取逗号分隔的列表。)