[英]C++ std::ifstream read to string delimiters
使用時:
string s;
cin >> s;
哪些字符可以包含字符串以及哪些字符將停止讀取字符串。
std::ctype_base::space
是std::istream
的分隔符,它使得它停止從源中讀取更多字符。
std::ctype_base::space
指的是空格和換行符。 這意味着,當使用cin>>s
讀取時, s
可以包含除空格和換行符之外的任何字符。
如果你想讀取包含空格的完整行,那么你可以使用getline()
函數,它使用newline作為分隔符。 還存在其重載函數,如果要提供自己的分隔符,可以使用它。 有關更多詳細信息,請參閱其文檔 。
您還可以使用可以設置為std::istream
自定義區域設置。 您的自定義區域設置可以定義一組字符,這些字符將被std::istream
視為分隔符。 你可以在這里看到一個這樣的例子(參見我的解決方案):
分隔符是std::isspace( ch, std::sin.getlocale() )
返回true的任何字符ch
。 換句話說,無論所謂的語言環境都是“白色空間”。 (雖然我會認為它有些濫用,但我知道程序員要創建特殊的語言環境,例如,
考慮白色空格,並使用>>
來讀取逗號分隔的列表。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.