C++std::ifstream读取字符串分隔符



使用时:

string s;
cin >> s;

字符串可以包含哪些字符,哪些字符将停止对字符串的读取。

std::ctype_base::spacestd::istream的分隔符,使其停止从源读取更多字符。

std::ctype_base::space表示空白和换行符。也就是说,当使用cin>>s进行读取时,s可以包含除空白和换行符之外的任何字符。

如果您也想读取包含空格的完整行,那么您可以使用getline()函数,该函数使用换行符作为分隔符。还有它的重载函数,如果您想提供自己的分隔符,可以使用它。有关更多详细信息,请参阅其文档。


您还可以使用自定义的区域设置,可以将其设置为std::istream。您的自定义区域设置可以定义一组要由std::istream作为分隔符处理的字符。你可以在这里看到一个这样的例子(见我的解决方案):

将std::字符串拆分为向量的正确方法<字符串>

分隔符是std::isspace( ch, std::sin.getlocale() )返回true的任何字符ch。换句话说,不管充满活力的场所考虑到了"白色空间"。(尽管我会我知道程序员会创建特殊地区,例如考虑,空白,并使用>>读取逗号分隔的列表。)

最新更新