小技巧实现istream的非空格符分割

只是个小技巧,然而我现在并不能完全理解这个实现的原理,还是很弱的。

大概是自定义locale,重新定义空白符,再将自定义locale导入istream改变istream的行为。无论是cin还是ifstream都是可以用的。注意imbue完locale之后cin的全局特性都会改变,如果想要恢复原来的istream的行为的话要imbue原来的locale.

istream.get()修改delimiter

直接使用get()的第三個參數就可以了,cin.get(目標串, 目標輸入最大長度,分隔符);

但是只能用一個分隔符。

Scroll to top