diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2008-01-27 11:37:44 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@xenon.tklauser.home> | 2008-01-27 11:37:44 +0100 |
commit | 7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch) | |
tree | b1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/SNIP/myline.h |
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/SNIP/myline.h')
-rwxr-xr-x | reference/C/CONTRIB/SNIP/myline.h | 43 |
1 files changed, 43 insertions, 0 deletions
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
|