make a string that gets appended to

i would like to make a string output so i can get the length of it to produce a separating line because the Y value comes from a file and if i set it as a const variable it would in instances be too short or too long heres the function i'd like to update.

void printmapstats(ofstream& mstats, int movestats[][100], int maxX, int maxY)
{
mstats << right << setw(50) << "**********************" << endl<< setw(50)
    << "*   Map Statistics   *" << endl << setw(50)
    << "**********************" << endl << endl;
    int j=0, i = 0;
    mstats << setw(39) << "Y" << endl << "  ";

*** this is the one i'd like to make a string to get a length of to setup a for loop.
    mstats << endl << setw(3) << "*" << setw(5) << "*" << setw(4) << i << setw(2)
    << "*";
    for (int i = 1; i < maxY; i++)
    {
       mstats << setw(4) << i << setw(2) << "*";
    }
    mstats << endl << endl;
***

    for (int i=0; i < maxX; i++)
    {
        if (i == (maxX / 2) - 1)
        {
            mstats << "X" << right << setw(2) << "*" << setw(3) << i << " *" ;
        }
        else
        {
            mstats << setw(3) << "*" << setw(3) << i << " *";
        }
        mstats << setw(4) << movestats[i][j] << " |";
        for (j=1; j < maxY; j++)
        {
            mstats << setw(4) << movestats[i][j] << " |";
        }
        mstats << endl << endl;
    }
}

as of now it prints out:

  *    *   0 *   1 *   2 *   3 *   4 *   5 *   6 *   7 *   8 *   9 *  10 *  11 *

  *  0 *   0 |   1 |   3 |   4 |   7 |   5 |   4 |   3 |   2 |   2 |   1 |   0 |

my desired output would be something like:

  *    *   0 *   1 *   2 *   3 *   4 *   5 *   6 *   7 *   8 *   9 *  10 *  11 *
*****----------------------------------------------------------------------
  *  0 *   0 |   1 |   3 |   4 |   7 |   5 |   4 |   3 |   2 |   2 |   1 |   0 |

Any Ideas?
marineknight22Asked:
Who is Participating?
 
Jaime OlivaresSoftware ArchitectCommented:
Don't have to make a string to calculate, just do this:

int len=0;   // create this variable
*** this is the one i'd like to make a string to get a length of to setup a for loop.
    mstats << endl << setw(3) << "*" << setw(5) << "*" << setw(4) << i << setw(2)
    << "*";
    for (int i = 1; i < maxY; i++)
    {
       mstats << setw(4) << i << setw(2) << "*";
       len += 6;   // accumulate length here
    }
    mstats << endl << endl;
***

    string line(len, '-');   // create string here
    mstats << "*****" << line << endl;    // display it
0
 
Jaime OlivaresSoftware ArchitectCommented:
I think my answer is correct but have to hear to author.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.