diff options
author | Kenneth Heafield <github@kheafield.com> | 2014-02-06 00:49:15 +0400 |
---|---|---|
committer | Kenneth Heafield <github@kheafield.com> | 2014-02-06 00:49:15 +0400 |
commit | 71add7895757e478f09a2751cf9f77e8d6672300 (patch) | |
tree | 63f29f5974369dd845044d850e07641667eae786 | |
parent | d4035115213e3e458766f93c5ab4330ad2e73fa7 (diff) |
By popular demand, ReadLineOrEOF for while loops
-rw-r--r-- | util/file_piece.cc | 7 | ||||
-rw-r--r-- | util/file_piece.hh | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/util/file_piece.cc b/util/file_piece.cc index 9c7e00c..4aaa250 100644 --- a/util/file_piece.cc +++ b/util/file_piece.cc @@ -84,6 +84,13 @@ StringPiece FilePiece::ReadLine(char delim) { } } +bool FilePiece::ReadLineOrEOF(StringPiece &to, char delim) { + try { + to = ReadLine(delim); + } catch (const util::EndOfFileException &e) { return false; } + return true; +} + float FilePiece::ReadFloat() { return ReadNumber<float>(); } diff --git a/util/file_piece.hh b/util/file_piece.hh index ed3dc5a..1054c18 100644 --- a/util/file_piece.hh +++ b/util/file_piece.hh @@ -60,6 +60,9 @@ class FilePiece { // It is similar to getline in that way. StringPiece ReadLine(char delim = '\n'); + // Doesn't throw EndOfFileException, just returns false. + bool ReadLineOrEOF(StringPiece &to, char delim = '\n'); + float ReadFloat(); double ReadDouble(); long int ReadLong(); |