DOKK / manpages / debian 11 / libbobcat-dev / randbuf.3bobcat.en
FBB::RandBuffer(3bobcat) random number streambuf FBB::RandBuffer(3bobcat)

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

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

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

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

std::streambuf

RandBuf(int min, int max, size_t seed = 1):
This RandBuf() constructor initializes the random generator. The seed is used to initialize the random number generator.Random values between min and max (inclusive) are returned.

Copy and move constructors (and assignment operators) are not available. `

int underflow():
This function is called by std::istream objects using RandBuf. It produces the next available random number, separating the random numbers by one blanks space. Random values between min and max (inclusive) are returned (see the description of the constructor).

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

#include <iostream>
#include <istream>
#include "../randbuf"
using namespace std;
using namespace FBB;
int main(int argc, char **argv)
{

if (argc == 1)
{
cout << "expect: nruns min max seed\n";
return 1;
}
RandBuf rb(stoi(argv[2]), stoi(argv[3]), stoul(argv[4]));
istream istr(&rb);
for (unsigned idx = stoul(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; }

bobcat/randbuf - defines the class interface

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

None Reported.

https://fbb-git.gitlab.io/bobcat/: gitlab project page;
bobcat_5.07.00-x.dsc: detached signature;
bobcat_5.07.00-x.tar.gz: source archive;
bobcat_5.07.00-x_i386.changes: change log;
libbobcat1_5.07.00-x_*.deb: debian package containing the libraries;
libbobcat1-dev_5.07.00-x_*.deb: debian package containing the libraries, headers and manual pages;

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

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

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

2005-2020 libbobcat-dev_5.07.00