File: myline.h

package info (click to toggle)
c-cpp-reference 2.0.2-8
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 8,016 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 119; java: 77; awk: 34; csh: 9
file content (43 lines) | stat: -rwxr-xr-x 1,379 bytes parent folder | download | duplicates (5)
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