簡體   English   中英

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

[英]C++ std::ifstream read to string delimiters

使用時:

string s;
cin >> s;

哪些字符可以包含字符串以及哪些字符將停止讀取字符串。

std::ctype_base::spacestd::istream的分隔符,它使得它停止從源中讀取更多字符。

std::ctype_base::space指的是空格和換行符。 這意味着,當使用cin>>s讀取時, s可以包含除空格和換行符之外的任何字符。

如果你想讀取包含空格的完整行,那么你可以使用getline()函數,它使用newline作為分隔符。 還存在其重載函數,如果要提供自己的分隔符,可以使用它。 有關更多詳細信息,請參閱其文檔


您還可以使用可以設置為std::istream自定義區域設置。 您的自定義區域設置可以定義一組字符,這些字符將被std::istream視為分隔符。 你可以在這里看到一個這樣的例子(參見我的解決方案):

將std :: string拆分為vector <string>的正確方法

分隔符是std::isspace( ch, std::sin.getlocale() )返回true的任何字符ch 換句話說,無論所謂的語言環境都是“白色空間”。 (雖然我會認為它有些濫用,但我知道程序員要創建特殊的語言環境,例如,考慮白色空格,並使用>>來讀取逗號分隔的列表。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM