I'm a relative beginner, taking a c++ class, and I'm trying to output this stream of numbers to a .txt file. I'm having no problem actually getting them into the file, but I can't figure out how to get the numbers to line up in columns or rows instead of just being one really long row (or column, if I put an endl after each one).

To put it in context, I'm using a for loop to read each of these numbers from an array one at a time, and the output to the .txt file happens inside the loop as well, so each time it iterates, it reads the next number and outputs it. How can I get this in a more printer-friendly format?


8 Years
Discussion Span
Last Post by AdamE34

Use nested loops. One for rows and one for columns:

for (int rows = 0; rows < .......; ++rows) {
    for (int cols = 0; cols < .......; ++cols ) {
         out_file << some_value << ' ';
    out_file << '\n';

You could try using an if statement with the loop's counter and the mod operator (%) to break it up into n rows of x columns.

const int ROW_SIZE = 5;

for (int i = 0; 1 <= 20; i++) {
  /* read input */

  /* write output */

 if ((i%ROW_SIZE) == (ROW_SIZE-1))
  /*your ofstream object */ << "\n";
} // end for

This should create a file laid out as rows of 5 numbers each.

[edit]rats, ninja niek_e strikes again[/edit]

Edited by Fbody: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.