Go Premium for a chance to win a PS4. Enter to Win

x
Solved

make a string that gets appended to

Posted on 2004-09-19
Medium Priority
224 Views
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?
0
Question by:marineknight22
• 2

LVL 55

Accepted Solution

Jaime Olivares earned 80 total points
ID: 12148838
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

LVL 55

Expert Comment

ID: 12599975
I think my answer is correct but have to hear to author.
0

Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generatâ€¦
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticallâ€¦
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
Suggested Courses
Course of the Month12 days, 2 hours left to enroll