Annotation of researchv10dc/man/mana/ostream.3, revision 1.1

1.1     ! root        1: .  \"ident     "%W%"
        !             2: .  \"Copyright (c) 1984 AT&T
        !             3: .  \"All Rights Reserved
        !             4: .  \"THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
        !             5: .  \"The copyright notice above does not evidence any
        !             6: .  \"actual or intended publication of such source code.
        !             7: .TH IOS.OUT 3I+ "C++ Stream Library" " "
        !             8: .SH NAME
        !             9: ostream \- formatted and unformatted output
        !            10: .SH SYNOPSIS
        !            11: .ft B
        !            12: .ta1i 2i
        !            13: .nf
        !            14: #include <iostream.h>
        !            15: 
        !            16: typedef long streamoff, streampos;
        !            17: class ios {
        !            18: public:
        !            19:        enum    seek_dir { beg, cur, end };
        !            20:        enum    open_mode { in, out, ate, app } ;
        !            21:        // \fIand lots of other stuff ... \fP
        !            22:        } ;
        !            23: 
        !            24: class ostream : ios {
        !            25: public:
        !            26:        ostream&        flush();
        !            27:        int     opfx();
        !            28:        ostream&        put(char c);
        !            29:        ostream&        seekp(streampos pos);
        !            30:        ostream&        seekp(streamoff off, seek_dir d);
        !            31:        streampos       tellp();
        !            32:        ostream&        write(const char*  ptr,int n);
        !            33:        ostream&        write(const unsigned    char* ptr, int n);
        !            34:        ostream&        operator<<(const char*);
        !            35:        ostream&        operator<<(char);
        !            36:        ostream&        operator<<(short);
        !            37:        ostream&        operator<<(int a);
        !            38:        ostream&        operator<<(long);
        !            39:        ostream&        operator<<(double);
        !            40:        ostream&        operator<<(unsigned char);
        !            41:        ostream&        operator<<(unsigned short);
        !            42:        ostream&        operator<<(unsigned int);
        !            43:        ostream&        operator<<(unsigned long);
        !            44:        ostream&        operator<<(void*);
        !            45:        ostream&        operator<<(const streambuf&);
        !            46:        ostream&        operator<<(ostream& (*)(ostream&));
        !            47: };
        !            48: 
        !            49: class ostream_withassign {
        !            50:                ostream_withassign();
        !            51:        istream&        operator=(istream&);
        !            52:        istream&        operator=(streambuf*);
        !            53: };
        !            54: 
        !            55: extern ostream_withassign cout;
        !            56: extern ostream_withassign cerr;
        !            57: extern ostream_withassign clog;
        !            58: 
        !            59: 
        !            60: ostream&       endl(ostream& i) ;
        !            61: ostream&       ends(ostream& i) ;
        !            62: ostream&       flush(ostream&  i) ;
        !            63: .fi
        !            64: .ft R
        !            65: .SH DESCRIPTION
        !            66: \f(CWistream\fRs support
        !            67: insertion (storing) into an \f(CWstreambuf\fR.
        !            68: These are commonly refered to as output operations.
        !            69: .PP
        !            70: Assume:
        !            71: .br
        !            72: \(em \fBouts\fR is an \f(CWostream\fR.
        !            73: .br
        !            74: \(em \fBoutswa\fR is an \f(CWostream_withassign\fR.
        !            75: .br
        !            76: \(em \fBoutsp\fR is an \f(CWostream*\fR.
        !            77: .br
        !            78: \(em \fBc\fR is a \f(CWchar\fR.
        !            79: .br
        !            80: \(em \fBptr\fR is a \f(CWchar*\fR or \f(CWunsigned char*\fR.
        !            81: .br
        !            82: \(em \fBsb\fR is a \f(CWstreambuf*\fR
        !            83: .br
        !            84: \(em \fBi\fR and \fBn\fR are \f(CWint\fR.
        !            85: .br
        !            86: \(em \fBpos\fR is a \f(CWstreampos\fR.
        !            87: .br
        !            88: \(em \fBoff\fR is a \f(CWstreamoff\fR.
        !            89: .br
        !            90: \(em \fBdir\fR is a \f(CWseek_dir\fR.
        !            91: .br
        !            92: \(em \fBmanip\fR is a function with type \f(CWostream& (*)(ostream&)\fR.
        !            93: .PP
        !            94: .PP
        !            95: Constructors and assignment:
        !            96: .TP
        !            97: \fBostream(sb)\fR
        !            98: Initializes \fBios\fR state variables and associates stream with
        !            99: buffer \fBsb\fR.
        !           100: \fBostream_withassign()\fR
        !           101: Does no initialization.  This allows a file static
        !           102: variable of this type
        !           103: (\fBcout\fR for example) to be used before it is constructed provided
        !           104: it is assigned to first.
        !           105: .TP
        !           106: \fBoutswa=sb\fR
        !           107: Associates \fBsb\fR with \fBswa\fR and initializes the entire
        !           108: state of \fBoutswa\fR.
        !           109: .TP
        !           110: \fBinswa=ins\fR
        !           111: Associates \fBins->rdbuf()\fR with \fBswa\fR and initializes the entire
        !           112: state of \fBoutswa\fR.
        !           113: The inserters:
        !           114: .TP
        !           115: \fBouts<<x\fR
        !           116: First call \fBouts.opfx()\fR.  If that returns 0 do nothing.
        !           117: Otherwise insert a sequence of characters
        !           118: representing \fBx\fR into \fBouts.rdbuf()\fR.
        !           119: Errors are indicated by setting
        !           120: the error state of \fBouts\fR.
        !           121: \fBouts\fR is always returned.
        !           122: .RS
        !           123: .PP
        !           124: \fBx\fR is converted into a sequence of characters
        !           125: (its representation) according
        !           126: to rules that depend on \fBx\fR's type and
        !           127: \fBouts\fR's format state variables (see \fIios\fR(3C++)):
        !           128: .TP
        !           129: \f(CWchar*\fR
        !           130: The representation is the sequence of characters up to
        !           131: (but not including)
        !           132: the terminating null of the string \fBx\fR points at.
        !           133: .TP
        !           134: \fIany integral type\fR
        !           135: If \fBx\fR is positive
        !           136: the representation contains a sequence of
        !           137: decimal, octal, or hexadecimal digits with no leading zeros
        !           138: according to whether
        !           139: \fBouts.convbase()\fR is 10, 8, or 16 respectively.
        !           140: If \fBx\fR is zero the representation is a single
        !           141: zero character(\f(CW0\fR).
        !           142: If \fBx\fR is negative, decimal conversion converts is to a minus
        !           143: sign (\f(CW-\fR) followed by decimal digits.
        !           144: The other conversions treat all values as unsigned.
        !           145: A value of 0 for \fBouts.convbase()\fR
        !           146: also causes decimal conversion.
        !           147: The effect of other values of \fBouts.convbase()\fR is undefined.
        !           148: If \fBouts.showbase()\fR
        !           149: is non-zero the hex representation contains 
        !           150: \f(CW0x\fR before the hex digits.
        !           151: If \fBouts.showbase()\fR is non-zero the octal representation contains
        !           152: a leading 0.
        !           153: .TP
        !           154: \f(CWvoid*\fR
        !           155: Pointers are cast to integral values and then converted
        !           156: to hexadecimal numbers as if \fBouts.showbase()\fR were set.
        !           157: .TP
        !           158: \f(CWfloat\fR, \f(CWdouble\fR
        !           159: The arguments are converted according to the current values
        !           160: of \fBouts.precision()\fR, \fBouts.floatfmt()\fR, and \fBouts.width()\fR
        !           161: using the printf formatting conventions for
        !           162: \f(CW"%\fBfloatfmt\f(CW"\fR.
        !           163: The default values for \fBouts.floatfmt()\fR and \fBouts.precision()\fR
        !           164: are \f(CWg\fR and 6 respectively.
        !           165: .PP
        !           166: After the representation is determined, padding occurs.
        !           167: If \fBouts.width()\fR
        !           168: is greater than 0
        !           169: and the representation contains less than \fBouts.width()\fR
        !           170: characters, then enough \fBouts.fill()\fR characters are added
        !           171: to bring the total number of characters to \fBios.width()\fR.
        !           172: If \fBios.ladjust()\fR is non-zero the sequence is left adjusted.
        !           173: That is, characters are added after the characters determined above.
        !           174: Otherwise the padding is added before the characters determined
        !           175: above. \fBios.width()\fR is reset to 0, but all other format
        !           176: state variables are unchanged.  The resulting sequence (padding
        !           177: plus representation) is inserted into \fBouts.rdbuf()\fR.
        !           178: .RE
        !           179: .TP
        !           180: \fBouts<<sb\fR
        !           181: If \fBouts.opfx()\fR returns non-zero
        !           182: the sequence of characters that can be fetched from \fBsb\fR
        !           183: are inserted into \fBouts.rdbuf\fR.  Insertion stops when
        !           184: no more characters can be fetcheded from \fBsb\fR.  No padding
        !           185: is performed.  Always return \fBouts\fR.
        !           186: .PP
        !           187: Other members:
        !           188: .TP
        !           189: \fBi=outs.opfx()\fR
        !           190: If \fBouts\fR's error state is nonzero returns immediately.
        !           191: If \fBouts.tie()\fR is non-null flush it.
        !           192: Returns non-zero except when \fBouts\fR'es error state is nonzero.
        !           193: .TP
        !           194: \fBoutsp=&outs.flush()\fR
        !           195: storing characters into a streambuf does not always
        !           196: cause them to be consumed (e.g., written to the external file)
        !           197: immediately.
        !           198: \fBflush\fR
        !           199: causes any characters that may have been stored but not yet consumed
        !           200: to be consumed by calling \fBouts.rdbuf()->sync\fR.
        !           201: .TP
        !           202: \fBouts<<manip\fR
        !           203: Equivalent to \fBmanip(outs)\fR.
        !           204: Syntactically this looks like an insertion
        !           205: operation, but semantically it does an arbitrary operations
        !           206: rather than converting \fBmanip\fR to a sequence of characters as
        !           207: do the insertion operators.
        !           208: .PP
        !           209: Unformatted output functions:
        !           210: .TP
        !           211: \fBoutsp=&outs.put(c)\fR
        !           212: Inserts \fBc\fR into \fBouts.rdbuf()\fR.  Sets the error state if
        !           213: the insertion fails.
        !           214: .TP
        !           215: \fBoutsp=&outs.write(s,n)\fR
        !           216: Inserts the
        !           217: \fBn\fR
        !           218: characters starting at \fBs\fR into \fBouts.rdbuf()\fR.
        !           219: These characters may include zeros (i.e., \fBs\fR need not be
        !           220: a null terminated string).
        !           221: .PP
        !           222: Positioning functions:
        !           223: .TP
        !           224: \fBoutsp=&ins.seekp(off,dir)\fR
        !           225: Repositions \fBouts.rdbuf()\fR's put pointer.
        !           226: See \fIsbuf.pub\fR(3C++)\fR for a discussion of positioning.
        !           227: .TP
        !           228: \fBoutsp=&outs.seekp(pos)\fR
        !           229: Repositions \fBouts.rdbuf()\fR's put pointer.
        !           230: See \fIsbuf.pub\fR(3C++)\fR for a discussion of positioning.
        !           231: .TP
        !           232: \fBpos=outs.tellp()\fR
        !           233: The current position of \fBouts.rdbuf()\fR's put pointer.
        !           234: See \fIsbuf.pub\fR(3C++)\fR for a discussion of positioning.
        !           235: .PP
        !           236: Manipulators:
        !           237: .TP
        !           238: \fBouts<<endl\fR
        !           239: Ends a line by inserting a newline character and flushing.
        !           240: .TP
        !           241: \fBouts<<ends\fR
        !           242: Ends a string by inserting a null(0) character.
        !           243: .TP
        !           244: \fBouts<<flush\fR
        !           245: Flushes \fBouts\fR
        !           246: .SH SEE ALSO
        !           247: ios(3C++)
        !           248: sbuf.pub(3C++)
        !           249: manip(3C++)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.