stringstream parser;
parser << 5;
short top = 0;
parser >> top;
parser.str(""); //HERE I'M RESETTING parser
parser << 6; //DOESN'T PUT 6 INTO parser
short bottom = 0;
parser >> bottom;为什么不动呢?
发布于 2010-05-17 18:02:28
通常,要“重置”字符串流,您需要使用str将底层序列重置为空字符串,并使用clear清除任何fail和eof标志。
parser.str( std::string() );
parser.clear();通常情况下,第一个>>到达字符串的末尾并设置eof位,尽管它成功地解析了第一个short。在此之后,流上的操作会立即失败,因为流的eof位仍处于设置状态。
https://stackoverflow.com/questions/2848087
复制相似问题