 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Duck Dodgers Guest
|
Posted: Wed Apr 27, 2005 10:42 pm Post subject: Stream state in loop conditions |
|
|
I see this idiom a LOT for reading until end-of-file:
while ( cin >> var ) { /* ... */ }
while ( getline ( cin, s ) ) { /* ... */ }
Is this guaranteed to work? The standard makes no mention of operator
void* looking at eofbit at any point. The way I'm reading the standard,
it looks like if no characters are read then failbit is set, which
operator void* uses. The idiom would work under that interpretation
because if eofbit is set then no characters are read and failbit is set
shortly thereafter, causing the loop to terminate because operator
void* relies on fail().
There's also a clause about sentry that suggests both failbit and
eofbit are set if end-of-file is reached (section 27.6.1.1.2), but I'm
not quite sure that's applicable to my question.
Thanks for your time.
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html ]
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|