This class is available for the OPUS Blackboard API. The initial OPUS 2.0 release is described here
Constructors:
| Num_in_str( ) | |
| ~Num_in_str( ) |
Methods:
| operator+=( ) | appends a value to the string |
| set_width( ) | sets the field width |
| set_fill( ) | sets the fill character |
| reset( ) | resets the object to an uninitialized state |
| str( ) | gets the current string value |
Description
This class aids the insertion of numbers into strings. It overloads the += operator, allowing various numeric types to be appended to an initial string value (if supplied). A width and fill character can be specified for number formatting purposes.
Example
#include <iostream>
#include "num_in_str.h"
using namespace std;
// The following example uses a Num_in_str object to embed a
// number in a string, then print it out
int main(int argc, char* argv[])
{
Num_in_str ns("OSF_TRIGGER:");
ns.set_width(2);
ns.set_fill('0');
ns += 2;
cout << ns.str() << endl; // outputs "OSF_TRIGGER:02"
return(0);
}
Num_in_str::Num_in_str - The Num_in_str object constructor.
Synopsis
Num_in_str::Num_in_str(
const string& s) // I - string to initialize from
Num_in_str::Num_in_str(
const char* s) // I - string to initialize from
Description
The constructor initializes the object's private members. No default width or fill character are set.
Exceptions Thrown
Num_in_str::~Num_in_str - The Num_in_str object destructor.
Synopsis
Num_in_str::~Num_in_str()
Description
This method destroys the object.
Exceptions Thrown
Num_in_str::operator+= - Append argument to the string maintained by the object.
Synopsis
Num_in_str& Num_in_str::operator+=(
const int i) // I - add int to string
Num_in_str& Num_in_str::operator+=(
const unsigned int i) // I - add int to
// string
Num_in_str& Num_in_str::operator+=(
const long i) // I - add long to string
Num_in_str& Num_in_str::operator+=(
const unsigned long i) // I - add int to
// string
Num_in_str& Num_in_str::operator+=(
const double& i) // I - add dbl to string
Num_in_str& Num_in_str::operator+=(
const string& s) // I - concat. to string
Description
This method appends the argument to the string maintained by the object using the current formatting that is in effect.
Returns
A reference to this object.
Exceptions Thrown
Example
Num_in_str ns("FOO");
ns += 10.5;
string s("BAR");
ns += s;
cout << ns.str() << endl; // outputs "FOO10.5BAR"
Num_in_str::set_width - Set the field width for future += operations.
Synopsis
void Num_in_str::set_width(
const int i) // I - width
Description
The field width to apply during subsequent += operations is set by this method. If the length of the argument to the += operator is less than the width set by this method, pad characters (as set by the set_fill method) are applied until the width is achieved. If a width is specified, all += operations with numbers are right-justified whereas += operations with strings are left-justified.
Exceptions Thrown
| Bad_val<int> | - if width is <= 0; Bad_val.arg contains argument |
Example
Num_in_str ns("FOO");
ns.set_width(5);
ns+=2;
cout << ns.str() // output is "FOO 2"
Num_in_str::set_fill - Set the character to use for field padding.
Synopsis
void Num_in_str::set_fill(
const char c) // I - fill character
Description
This method sets the character to use as padding when a += operation is attempted and the field width is greater than the concatenated string. The default fill character is a space.
Exceptions Thrown
Example
Num_in_str ns("FOO");
ns.set_width(5);
ns.set_fill('#');
ns+=1;
cout << ns.str() // outputs "FOO#####1"
Num_in_str::reset - Reset the object to its defaults.
Synopsis
void Num_in_str::reset()
Description
This method unsets any width and fill character, and erases the current string value.
Exceptions Thrown
Num_in_str::str - Get a copy of the current string.
Synopsis
string Num_in_str::str() const
Description
This method returns the value of the internally maintained string.
Returns
string containing the current value of this object
Exceptions Thrown
Example
Num_in_str ns("FOO");
cout << ns.str() << endl; // outputs "FOO"
Copyright © 1997-2000 The Association of Universities for
Research in Astronomy, Inc. All Rights Reserved.
For more information, contact opushelp@stsci.edu
Last modified: 25 April 2000