ostream man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

OSTREAM(3CC4)							 OSTREAM(3CC4)

NAME
       ostream - formatted and unformatted output

SYNOPSIS
       #include <iostream.h>
       typedef long streampos;
       typedef long streamoff;
       class unsafe_ios {
       public:
	    // exported types

	    // stream operation mode
	       enum open_mode  {
		   in	    = 0x01,	   // open for reading
		   out	    = 0x02,	   // open for writing
		   ate	    = 0x04,	   // seek to eof upon original open
		   app	    = 0x08,	   // append mode: all additions at eof
		   trunc    = 0x10,	   // truncate file if already exists
		   nocreate = 0x20,	   // open fails if file doesn't exist
		   noreplace= 0x40	   // open fails if file already exists
	       };

	    // stream seek direction
	       enum seek_dir { beg=0, cur=1, end=2 };

	    // formatting flags
	       enum    {
		   skipws    = 0x0001,	   // skip whitespace on input
		   left	     = 0x0002,	   // left-adjust output
		   right     = 0x0004,	   // right-adjust output
		   internal  = 0x0008,	   // padding after sign or base indicator
		   dec	     = 0x0010,	   // decimal conversion
		   oct	     = 0x0020,	   // octal conversion
		   hex	     = 0x0040,	   // hexidecimal conversion
		   showbase  = 0x0080,	   // use base indicator on output
		   showpoint = 0x0100,	   // force decimal point (floating output)
		   uppercase = 0x0200,	   // upper-case hex output
		   showpos   = 0x0400,	   // add '+' to positive integers
		   scientific= 0x0800,	   // use 1.2345E2 floating notation
		   fixed     = 0x1000,	   // use 123.45 floating notation
		   unitbuf   = 0x2000,	   // flush all streams after insertion
		   stdio     = 0x4000	   // flush stdout, stderr after insertion
		   };

	    // see ios(3CC4) for remainder ...
       };
       class unsafe_ostream : virtual public unsafe_ios {
       public:
	    // exported functions
	    // unformatted output functions
	    unsafe_ostream& put(char c);
	    unsafe_ostream& write(const char* ptr, int len);
	    // wide character
	    unsafe_ostream& put(wchar_t wc);
	    unsafe_ostream& write(const wchar_t * wptr, int len);
	    // other functions
	    int	 opfx();
	    void osfx();
	    unsafe_ostream& flush();
	    unsafe_ostream& seekp(streampos pos);
	    unsafe_ostream& seekp(streamoff offset, unsafe_ios::seek_dir from);
	    streampos tellp();
       public:
	    // exported operator functions
	    unsafe_ostream& operator<< (char);
	    unsafe_ostream& operator<< (unsigned char);
	    unsafe_ostream& operator<< (short);
	    unsafe_ostream& operator<< (unsigned short);
	    unsafe_ostream& operator<< (int);
	    unsafe_ostream& operator<< (unsigned int);
	    unsafe_ostream& operator<< (long);
	    unsafe_ostream& operator<< (unsigned long);
	    unsafe_ostream& operator<< (float);
	    unsafe_ostream& operator<< (double);
	    unsafe_ostream& operator<< (const char* buf);
	    unsafe_ostream& operator<< (void* ptr);
	    unsafe_ostream& operator<< (streambuf* sbufp);
	    unsafe_ostream& operator<< (unsafe_ostream& (*manip)(unsafe_ostream&));
	    unsafe_ostream& operator<< (unsafe_ios& (*manip)(unsafe_ios&));
       public:
	    // wide character
	    unsafe_ostream& operator<< (wchar_t);
	    unsafe_ostream& operator<< (const wchar_t*);
       public:
	    // exported constructors
	    unsafe_ostream(streambuf* sbufp);
       };
       class ostream : virtual public ios, public unsafe_ostream {
       public:
	    // unformatted output functions
	    ostream&	    put(char);
	    ostream&	    write(const char* ptr, int n);
	    ostream&	    write(const unsigned char* ptr, int n);
	    // wide character
	    ostream&	    put(wchar_t);
	    ostream&	    write(const wchar_t *, int);

	    // other functions
	    int	      opfx();
	    int	      osfx();
	    ostream&  flush();
	    ostream&  seekp(streampos);
	    ostream&  seekp(streamoff, seek_dir);
	    streampos tellp();
       public:
	    // exported operator functions
	    ostream&	    operator<<(char);
	    ostream&	    operator<<(unsigned char);
	    ostream&	    operator<<(short);
	    ostream&	    operator<<(unsigned short);
	    ostream&	    operator<<(int);
	    ostream&	    operator<<(unsigned int);
	    ostream&	    operator<<(long);
	    ostream&	    operator<<(unsigned long);
	    ostream&	    operator<<(float);
	    ostream&	    operator<<(double);
	    ostream&	    operator<<(const char*);
	    ostream&	    operator<<(void*);
	    ostream&	    operator<<(streambuf*);
	    ostream&	    operator<<(ostream& (*)(ostream&));
	    ostream&	    operator<<(ios& (*)(ios&));
       public:
	    // wide character
	    ostream&	    operator<< (wchar_t);
	    ostream&	    operator<< (const wchar_t*);
       public:
		 // exported constructor
		       ostream(streambuf* sbufp);

       };
       class ostream_withassign : public ostream {
       public:
	    ostream_withassign();
	    ostream_withassign& operator= (ostream& ostr);
	    ostream_withassign& operator= (streambuf* sbufp);
       };
       extern ostream_withassign cout;
       extern ostream_withassign cerr;
       extern ostream_withassign clog;
       ios&  dec(ios&);
       ios&  hex(ios&);
       ios&  oct(ios&);
       ostream& endl(ostream&);
       ostream& ends(ostream&);
       ostream& flush(ostream&);
       unsafe_ios&     dec(unsafe_ios&) ;
       unsafe_ios&     hex(unsafe_ios&) ;
       unsafe_ios&     oct(unsafe_ios&) ;
       unsafe_ostream& endl(unsafe_ostream& i) ;
       unsafe_ostream& ends(unsafe_ostream& i) ;
       unsafe_ostream& flush(unsafe_ostream&) ;

DESCRIPTION
       Class  ostream supports formatted and unformatted insertion (output) of
       data to an associated streambuf.

       Class unsafe_ostream implements	all  of	 the  functionality  described
       below,  but  does  not prevent simultaneous access by multiple threads;
       class ostream is a "wrapper" class that implements mutex	 locks	around
       each of the respective member functions of unsafe_ostream to ensure mt-
       safety.	Simply using the mt-safe class does not guarantee mt-safe  be‐
       haviour	by  your  application.	For complete information on sharing of
       iostream objects between cooperating threads, see the C++ Library  Ref‐
       erence,	Chapter 4, "Using Classic iostream in a Multithreaded Environ‐
       ment."

   Constructors and Assignment
       ostream(sbufp)
	      Associates the streambuf pointed to by sbufp with the stream and
	      initializes the ios state.

       ostream_withassign()
	      Performs no initialization.

       ostream_withassign osw = sbufp
	      Associates  the  streambuf pointed to by sbufp with osw and com‐
	      pletely initializes osw.

       ostream_withassign osw = ostr
	      The streambuf associated with ostr becomes associated  with  osw
	      and the constructor completely initializes osw.

       Note:  local objects of class ostream_withassign must be initialized.

   Wide character support
       All operations that output wide characters to a stream set ios::failbit
       and stop output if they encounter a wide character  with	 no  multibyte
       representation in the current locale.  They all call opfx().

   Output prefix and suffix functions
       int i = ostr.opfx()
	      Performs setup common to all insertion operations.  If the error
	      state of ostr is non-zero, opfx returns zero immediately.	 If  a
	      stream  is  tied to ostr (see tie in ios(3CC4)), the tied stream
	      is flushed.  Function opfx returns zero if any  error  condition
	      is  encountered,	non-zero  otherwise.   User-defined  inserters
	      should start by calling opfx.

       ostr.osfx()
	      Performs followup actions at  the	 conclusion  of	 an  insertion
	      operation.   If  ios::unitbuf  is	 set,  flushes the stream.  If
	      ios::stdio is set, flushes stdout and stderr.  (See  ios(3CC4).)
	      It has no return value.  All predefined inserters call osfx, but
	      the unformatted output functions do not.	User-defined inserters
	      should call osfx before returning.

   Formatted output (insertion) functions
       The  formatted  output  functions  call opfx().	If it returns zero, no
       further action takes place.  The	 functions  also  call	osfx()	before
       returning (if opfx() succeeded).

       ostr << sbufp
	      If ostr.opfx() returns non-zero, inserts all the characters into
	      ostr that that can be extracted from the streambuf pointed to by
	      sbufp.   No  padding is performed.  Returns a reference to ostr.
	      You can use this function to copy a stream efficiently, but  you
	      should be sure that neither stream is tied.  For example:

			#include <iostream.h>
			main()
			{   // copy cin to cout
			    cin.tie(0);
			    cout.tie(0);
			    cout << cin.rdbuf(); // see ios(3CC4) for rdbuf
			    return 0;
			}

       ostr << x
	      If  ostr.opfx(0) returns non-zero, inserts characters represent‐
	      ing x into ostr.	If opfx returns zero, no action is taken.  Any
	      errors  encountered  are	recorded  in  the error state of ostr.
	      These functions always return a reference to ostr.  User-written
	      functions should be of the form
		   ostream& operator<< (ostream&, SomeType)
	      and should conform to these principles.

	      The type of x and the format state of the ostream (see ios(3CC4)
	      determine the details of the conversion  and  insertion.	 These
	      functions	 do  not  change the state of the ostream, except that
	      the width variable is reset to zero after each formatted	inser‐
	      tion.   The  predefined formatted inserters and their conversion
	      rules are as follows:

       char, unsigned char, signed char
	      Inserts the character x into ostr without conversion.

       wchar_t
	      Converts the wide	 character  to	multibyte  representation  and
	      inserts  onto  the  stream.   Sets ios::failbit and stops if the
	      wide character has no multibyte representation  in  the  current
	      locale.

       short, unsigned short
	 int, unsigned int
	 long, unsigned long
	      The  representation consists of a sequence of ``digits'' with no
	      leading zeros.  The digits and coversion are octal  if  ios::oct
	      is  set,	hexadecimal if ios::hex is set, decimal if ios::dec or
	      none of these is set.  For decimal conversion, if x is  positive
	      and  ios::showpos is set, there is a leading plus sign (`+'); if
	      x is negative there is a leading minus sign  (`-').   The	 octal
	      and  hexadecimal conversions are treated as unsigned; no sign is
	      included.	 If ios::showbase is set, there is a leading  `0'  for
	      octal  conversion and a leading ``0x'' or ``0X'' for hexadecimal
	      conversion, depending on whether ios::uppercase is set.

       float, double
	      The value of x is converted according to the current  values  in
	      ostr  of	precision,  width,  ios::scientific,  ios::fixed,  and
	      ios::uppercase.  See ios(3CC4).

       char*  The representation is the sequence of characters pointed to by x
	      up to but not including the first null (0) character.

       wchar_t*
	      Inserts  the  multibyte representation of the wide characters in
	      the array up to the first 0 wide character.   Sets  ios::failbit
	      and  stops  if  it encounters a wide character with no multibyte
	      representation in the current  locale.   Note  that  padding  is
	      based on a field width measured in characters rather than bytes.
	      In the current implementation, the fill character	 is  always  a
	      single byte.

       void*  The  pointer is converted as if it were an int and ios::showbase
	      and ios::hex" were set.

   Unformatted output (insertion) functions
       These operations do not call opfx() or osfx().

       ostr.put(c)
	      Inserts the character c into ostr.  Sets the error state if  the
	      operation fails.	Always returns a reference to ostr.

       ostr.put(wc)
	      Puts  the	 multibyte  representation  of the wide character into
	      ostr.  Sets the error state  if  the  operation  fails.	Always
	      returns a reference to ostr.

       ostr.write(ptr, len)
	      Inserts  exactly	len  characters	 starting the beginning of the
	      char array pointed to by ptr into ostr.  Sets the error state if
	      the operation fails.  Always returns a reference to ostr.

       ostr.write(wptr, len)
	      Puts  out	 the  multibyte	 representations of exactly count wide
	      characters pointed to by wptr into ostr.

   Positioning functions
       These deal with the put pointer of the  streambuf  associated  with  an
       ostream.	  See sbufpub(3CC4) for a complete discussion. Multibyte input
       operations may cause the get pointer of the streambuf  to  differ  from
       the  value  reported  by	 tellg(), but seeks done on the istream rather
       than the streambuf will still coordinate correctly with all  operations
       on the istream.

       ostr.seekp(pos)
	 ostr.seekp(off, dir)
	      These  set the position of the put pointer; they return a refer‐
	      ence to ostr.

       streampos pos = ostr.tellp()
	      This returns the current position of the put pointer.

   Miscellaneous functions
       ostr.flush()
	      This causes any characters stored into the associated  streambuf
	      to  be  flushed;	for  example,  written to the output file.  It
	      returns a reference to ostr.

   Predefined Manipulators
       A manipulator may be  used  apparently  as  an  inserted	 or  extracted
       object,	but many only change the state of the stream.  See manip(3CC4)
       and ios(3CC4) for more information.  Several  manipulators  are	prede‐
       fined for use with ostreams.

       ostr << manip
	      This is equivalent to the call manip(ostr).

       ostr << dec
	      This sets the conversion base of ostr to 10.

       ostr << oct
	      This sets the conversion base of ostr to 8.

       ostr << hex
	      This sets the conversion base of ostr to 16.

       ostr << endl
	      This ends a line by inserting a newline and flushing ostr.

       ostr << ends
	      This ends a string by inserting null (0) character into ostr.

       ostr << flush
	      This is equivalent to calling ostr.flush().

SEE ALSO
       ios.intro(3CC4), ios(3CC4), manip(3CC4), sbufpub(3CC4),

       C++ Library Reference

	       Chapter 3, "The Classic iostream Library",

	       Chapter 4, "Using Classic iostream in a Multithreaded Environ‐
       ment."

				 18 June 1998			 OSTREAM(3CC4)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net