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

kra*_*mir 2 c++ string ifstream c++-standard-library

使用时:

string s;
cin >> s;
Run Code Online (Sandbox Code Playgroud)

哪些字符可以包含字符串以及哪些字符将停止读取字符串.

Naw*_*waz 9

std::ctype_base::space是分隔符std::istream,使其停止从源中读取更多字符.

std::ctype_base::space指的是空格和换行符.这意味着,s在阅读时可以包含除空格和换行符之外的任何字符cin>>s.

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


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

将std :: string拆分为vector <string>的正确方法