From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/myline.h | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/myline.h (limited to 'reference/C/CONTRIB/SNIP/myline.h') diff --git a/reference/C/CONTRIB/SNIP/myline.h b/reference/C/CONTRIB/SNIP/myline.h new file mode 100755 index 0000000..01e31e3 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/myline.h @@ -0,0 +1,43 @@ +// myLine.h +// +// Donated to the public domain; no restrictions on reuse or abuse apply. +// by David Nugent, 7th June, 1993. +// Simple line input class for istream to demonstrate input of a complete +// line rather than whitespace separated tokens (the default for operator<< +// for char* and other built-in types). +// Works by overloading operator>> for a customised class - this functionality +// is easily incorporated into your favourite String class +// + +# if !defined(_myLine_h) +# define _myLine_h 1 + +# define AUTO_GROW 1 // Allow autogrowth of buffer to fit +# define ALLOC_LEN 80 // Standard length & growth increment + + // Class declaration + +class myLine +{ + + public: + + myLine (short buflen =ALLOC_LEN); + myLine (char * usebuf, short buflen =ALLOC_LEN); + ~myLine (void); + // Get buffer address + char const * buf (void) const { return mybuf; } + // Conversion operators + char const * operator() (void) const { return mybuf; } // Explicit cast + operator char const * (void) const { return mybuf; } // Implicit cast + // istream operator>> + friend istream & operator>> (istream &, myLine &); + + private: + + short len, xalloc; + char * mybuf; + +}; + +# endif // _myLine_h -- cgit v1.2.3-54-g00ecf