问题描述
||
使用时:
的正确方法
,分隔符是any10ѭ返回true的任何字符ѭ9true。换句话说,无论
注入的语言环境将考虑“空白”。 (尽管我会
认为它有点滥用,我已经认识了程序员
考虑的特殊语言环境
string s;
cin >> s;
字符串可以包含哪些字符,哪些字符将停止读取字符串。
解决方法
std::ctype_base::space
是ѭ2the的分隔符,它使它不再从源中读取其他字符。
std::ctype_base::space
表示空白和换行符。这意味着,在使用cin>>s
进行读取时,s
可以包含除空格和换行符之外的任何字符。
如果您还想读取包含空格的完整行,则可以使用getline()
函数,该函数将换行符用作分隔符。还存在其重载函数,如果您想提供自己的定界符,可以使用它。有关更多详细信息,请参见其文档。
您还可以使用可设置为which2ѭ的自定义语言环境。您的自定义语言环境可以定义一组字符,以std::istream
作为定界符。您可以在此处看到一个这样的示例(请参阅我的解决方案):
将std :: string拆分为vector ,
空白,使用
>>
读取逗号分隔的列表。)