55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
// setf2.cpp -- using setf() with 2 arguments to control formatting
|
|
#include <iostream>
|
|
#include <cmath>
|
|
|
|
int main()
|
|
{
|
|
using namespace std;
|
|
// use left justification, show the plus sign, show trailing
|
|
// zeros, with a precision of 3
|
|
cout.setf(ios_base::left, ios_base::adjustfield);
|
|
cout.setf(ios_base::showpos);
|
|
cout.setf(ios_base::showpoint);
|
|
cout.precision(3);
|
|
// use e-notation and save old format setting
|
|
ios_base::fmtflags old = cout.setf(ios_base::scientific,
|
|
ios_base::floatfield);
|
|
cout << "Left Justification:\n";
|
|
long n;
|
|
for (n = 1; n <= 41; n+= 10)
|
|
{
|
|
cout.width(4);
|
|
cout << n << "|";
|
|
cout.width(12);
|
|
cout << sqrt(double(n)) << "|\n";
|
|
}
|
|
|
|
// change to internal justification
|
|
cout.setf(ios_base::internal, ios_base::adjustfield);
|
|
// restore default floating-point display style
|
|
cout.setf(old, ios_base::floatfield);
|
|
|
|
cout << "Internal Justification:\n";
|
|
for (n = 1; n <= 41; n+= 10)
|
|
{
|
|
cout.width(4);
|
|
cout << n << "|";
|
|
cout.width(12);
|
|
cout << sqrt(double(n)) << "|\n";
|
|
}
|
|
|
|
// use right justification, fixed notation
|
|
cout.setf(ios_base::right, ios_base::adjustfield);
|
|
cout.setf(ios_base::fixed, ios_base::floatfield);
|
|
cout << "Right Justification:\n";
|
|
for (n = 1; n <= 41; n+= 10)
|
|
{
|
|
cout.width(4);
|
|
cout << n << "|";
|
|
cout.width(12);
|
|
cout << sqrt(double(n)) << "|\n";
|
|
}
|
|
// std::cin.get();
|
|
return 0;
|
|
}
|