blob: 01e31e3ebb8f2f906cbb0821ac1903dd93c9ba6b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
|