FBB::RandBuffer(3bobcat)

random number streambuf
(libbobcat-dev_4.08.06-x.tar.gz)

2005-2018

NAME

FBB::RandBuffer - std::streambuf generating random numbers

SYNOPSIS

#include <bobcat/randbuffer>
Linking option: -lbobcat

DESCRIPTION

FBB:RandBuffer objects may be used as a std::streambuf of std::istream objects to allow the extraction of random numbers from the stream.

NAMESPACE

FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.

INHERITS FROM

std::streambuf

CONSTRUCTOR

VIRTUAL MEMBERS

INHERITED MEMBERS

Since the class uses public derivation from std::streambuf, all members of this class can be used.

EXAMPLE

#include <iostream>
#include <istream>

#include <bobcat/randbuffer>
#include <bobcat/a2x>

using namespace std;
using namespace FBB;

int main(int argc, char **argv)
{
    if (argc == 1)
    {
        cout << "expect: nruns min max seed\n";
        return 1;
    }

    Randbuffer rb(A2x{argv[2]}, A2x{argv[3]}, A2x{argv[4]}.to<size_t>());

    istream istr(&rb);

    for (int idx = A2x{argv[1]}; idx--; )
    {
        int c;
        if (!(istr >> c))
        {
            cout << "extraction failed\n";
            break;
        }    
        cout << "next: " << c << endl;
    }

    int count = 0;
    while (istr.unget())
        count++;

    cout << "number of successful unget()-calls: " << count << endl;
    istr.clear();
    istr >> count;
    cout << "and read: " << count << endl;
}

FILES

bobcat/randbuffer - defines the class interface

SEE ALSO

bobcat(7), irandstream(3bobcat), rand(3), srand(3), std::streambuf

BUGS

None Reported.

DISTRIBUTION FILES

BOBCAT

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.

COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

Frank B. Brokken (f.b.brokken@rug.nl).