November 2005
Beginner to intermediate
594 pages
16h 23m
English
You want to right- or left-justify text.
Use streams and the standard stream formatting flags right and left that are part of ios_base, defined in <ios>. Example 4-29
shows how they work.
Example 4-29. Justify text
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, char** argv) {
if (argc < 3)
return(EXIT_FAILURE);
ifstream in(argv[1]);
ofstream out(argv[2]);
int w = 72;
if (argc == 4)
w = atoi(argv[3]);
string tmp;
out.setf(ios_base::right); // Tell the stream to
// right-justify
while (!in.eof()) {
out.width(w); // Reset width after
getline(in, tmp, '\n'); // each write
out << tmp << '\n';
}
out.close();
}This example takes three arguments: an input file, an output file, and the width to right-justify to. You can use an input file like this:
With automatic download of Microsoft's (Nasdaq: MSFT) enormous SP2 security patch to the Windows XP operating system set to begin, the industry still waits to understand its ramifications. Home users that have their preferences set to receive operating-system updates as they are made available by Microsoft may be surprised to learn that some of the software they already run on their systems could be disabled by SP2 or may run very differently.
and make it look like this:
With automatic download of Microsoft's (Nasdaq: MSFT) enormous SP2 security patch to the Windows XP operating system set to begin, the industry still waits to understand ...