The basic algorithm for >>
of a string is:
skip whitespace
read and extract until next whitespace
If you use noskipws
, then the first step is skipped. After the first read, you are positionned on a whitespace, so the next (and all following) reads will stop immediatly, extracting nothing.
>>
to a string will never put whitespace into the string. More generally, using >>
with noskipws
is problematic, since whitespace is always a separator for >>
; it may make sense to use it punctually, but it should generally be reset immediately after it has been used. (The once case where it might make sense is when using >>
to a char
. In this case, the stream always extracts one character.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…