RWpistream(3C++) RWpistream(3C++)
NameRWpistream - Rogue Wave library class
Synopsis
#include <rw/pstream.h>
RWpistreampstr(cin); // Construct an RWpistream, using cin's
// streambuf
Description
Class RWpistream specializes the abstract base class RWvistream to
restore variables stored in a portable ASCII format by RWpostream. You
can think of RWpistream and RWpostream as an ASCII veneer over an
associated streambuf which are responsible for formatting variables and
escaping characters such that the results can be interchanged between any
machines. As such, they are slower than their binary counterparts
RWbistream and RWbostream which are more machine dependent. Because
RWpistream and RWpostream retain no information about the state of their
associated streambufs, their use can be freely exchanged with other users
of the streambuf (such as istream or ifstream). RWpistream can be
interrogated as to the stream state using member functions good(), bad(),
eof(), etc.
Persistence
None
Example
See RWpostream for an example of how to create an input stream for this
program.
#include <rw/pstream.h>
main(){
// Construct an RWpistream to use standard input
RWpistreampstr(cin);
int i;
float f;
double d;
char string[80];
pstr >> i; // Restore an int that was stored in binary
pstr >> f >> d; // Restore a float & double
pstr.getString(string, 80); // Restore a character string
}
Public Constructors
RWpistream(streambuf* s);
Page 1
RWpistream(3C++) RWpistream(3C++)
Initialize an RWpistream from the streambuf s.
RWpistream(istream& str);
Initialize an RWpistream using the streambuf associated with the istream
str.
Public Operators
virtual RWvistream&
operator>>(char& c);
Redefined from class RWvistream. Get the next character from the input
stream and store it in c. This member attempts to preserve the symbolic
characters values transmitted over the stream.
virtual RWvistream&
operator>>(wchar_t& wc);
Redefined from class RWvistream. Get the next wide char from the input
stream and store it in wc.
virtual RWvistream&
operator>>(double& d);
Redefined from class RWvistream. Get the next double from the input
stream and store it in d.
virtual RWvistream&
operator>>(float& f);
Redefined from class RWvistream. Get the next float from the input
stream and store it in f.
virtual RWvistream&
operator>>(int& i);
Redefined from class RWvistream. Get the next int from the input stream
and store it in i.
virtual RWvistream&
operator>>(long& l);
Redefined from class RWvistream. Get the next long from the input stream
and store it in l.
Page 2
RWpistream(3C++) RWpistream(3C++)
virtual RWvistream&
operator>>(short& s);
Redefined from class RWvistream. Get the next short from the input
stream and store it in s.
virtual RWvistream&
operator>>(unsigned char& c);
Redefined from class RWvistream. Get the next unsigned char from the
input stream and store it in c.
virtual RWvistream&
operator>>(unsigned short& s);
Redefined from class RWvistream. Get the next unsigned short from the
input stream and store it in s.
virtual RWvistream&
operator>>(unsigned int& i);
Redefined from class RWvistream. Get the next unsigned int from the
input stream and store it in i.
virtual RWvistream&
operator>>(unsigned long& l);
Redefined from class RWvistream. Get the next unsigned long from the
input stream and store it in l.
operator void*();
Inherited via RWvistream from RWvios.
Public Member Functions
virtual int
get();
Redefined from class RWvistream. Get and return the next character from
the input stream. Returns EOF if end of file is encountered.
virtual RWvistream&
get(char& c);
Page 3
RWpistream(3C++) RWpistream(3C++)
Redefined from class RWvistream. Get the next char and store it in c.
This member only preserves ASCII numerical codes, not the coresponding
character symbol.
virtual RWvistream&
get(wchar_t& wc);
Redefined from class RWvistream. Get the next wide char and store it in
wc.
virtual RWvistream&
get(unsigned char& c);
Redefined from class RWvistream. Get the next unsigned char and store it
in c.
virtual RWvistream&
get(char* v, size_t N);
Redefined from class RWvistream. Get a vector of chars and store them in
the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
already been retrieved from the stream into v, and sets the failbit.
Note that this member preserves ASCII numerical codes, not their
corresponding character values. If you wish to restore a character
string, use the function getString(char*, size_t).
virtual RWvistream&
get(wchar_t* v, size_t N);
Redefined from class RWvistream. Get a vector of wide chars and store
them in the array beginning at v. If the restore operation stops
prematurely, because there are no more data available on the stream,
because an exception is thrown, or for some other reason; get stores what
has already been retrieved from the stream into v, and sets the failbit.
Note that this member preserves ASCII numerical codes, not their
corresponding character values. If you wish to restore a character
string, use the function getString(char*, size_t).
virtual RWvistream&
get(double* v, size_t N);
Redefined from class RWvistream. Get a vector of doubles and store them
in the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
Page 4
RWpistream(3C++) RWpistream(3C++)
already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(float* v, size_t N);
Redefined from class RWvistream. Get a vector of floats and store them
in the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(int* v, size_t N);
Redefined from class RWvistream. Get a vector of ints and store them in
the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(long* v, size_t N);
Redefined from class RWvistream. Get a vector of longs and store them in
the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(short* v, size_t N);
Redefined from class RWvistream. Get a vector of shorts and store them
in the array beginning at v. If the restore operation stops prematurely,
because there are no more data available on the stream, because an
exception is thrown, or for some other reason; get stores what has
already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(unsigned char* v, size_t N);
Redefined from class RWvistream. Get a vector of unsigned chars and
store them in the array beginning at v. If the restore operation stops
prematurely, because there are no more data available on the stream,
because an exception is thrown, or for some other reason; get stores what
has already been retrieved from the stream into v, and sets the failbit.
Note that this member preserves ASCII numerical codes, not their
Page 5
RWpistream(3C++) RWpistream(3C++)
corresponding character values. If you wish to restore a character
string, use the function getString(char*, size_t).
virtual RWvistream&
get(unsigned short* v, size_t N);
Redefined from class RWvistream. Get a vector of unsigned shorts and
store them in the array beginning at v. If the restore operation stops
prematurely, because there are no more data available on the stream,
because an exception is thrown, or for some other reason; get stores what
has already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(unsigned int* v, size_t N);
Redefined from class RWvistream. Get a vector of unsigned ints and store
them in the array beginning at v. If the restore operation stops
prematurely, because there are no more data available on the stream,
because an exception is thrown, or for some other reason; get stores what
has already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
get(unsigned long* v, size_t N);
Redefined from class RWvistream. Get a vector of unsigned longs and
store them in the array beginning at v. If the restore operation stops
prematurely, because there are no more data available on the stream,
because an exception is thrown, or for some other reason; get stores what
has already been retrieved from the stream into v, and sets the failbit.
virtual RWvistream&
getString(char* s, size_t N);
Redefined from class RWvistream. Restores a character string from the
input stream and stores it in the array beginning at s. The function
stops reading at the end of the string or after N-1 characters, whichever
comes first. If N-1 characters have been read and the Nth character is
not the string terminator, then the failbit of the stream will be set.
In either case, the string will be terminated with a null byte. If the
input stream has been corrupted, then an exception of type RWExternalErr
will be thrown.
virtual RWvistream&
getString(wchar_t* ws, size_t N);
Redefined from class RWvistream. Restores a character string from the
input stream and stores it in the array beginning at ws. The function
Page 6
RWpistream(3C++) RWpistream(3C++)
stops reading at the end of the string or after N-1 characters, whichever
comes first. If N-1 characters have been read and the Nth character is
not the string terminator, then the failbit of the stream will be set.
In either case, the string will be terminated with a null byte. If the
input stream has been corrupted, then an exception of type RWExternalErr
will be thrown.
Page 7