summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/myline.h
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/myline.h')
-rwxr-xr-xreference/C/CONTRIB/SNIP/myline.h43
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