File: centered.f

package info (click to toggle)
bobcat 6.11.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,292 kB
  • sloc: cpp: 21,370; fortran: 6,507; makefile: 2,787; sh: 724; perl: 401; ansic: 26
file content (29 lines) | stat: -rw-r--r-- 986 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
template <typename Type>
std::string CSVTabIns::centered(FMT const &fmt,
                                unsigned fieldWidth, Type const &value)
{
    using namespace std;

    ostringstream stream;                  // format value in 'stream'

    stream.copyfmt(*d_out);                     // xfer d_out's format to
    stream.fill(d_out->fill());                 // stream

    if (fmt.d_precision < fieldWidth)           // maybe set the precision
        stream.precision(fmt.d_precision);

    stream << setw(fieldWidth) << value;        // convert value to string

    string ret = String::trim(stream.str()); // remove surrounding spaces

                                                // extra spaces needed
    if (unsigned length = ret.length();  length < fieldWidth)
    {
                                                // prefix this #spaces
        ret.insert(ret.begin(), (fieldWidth - length) / 2, ' ');
        ret.resize(fieldWidth, ' ');
    }


    return ret;
}