I am new to this website, and coding as well, so please bear with me. I have a program that i'm trying to fortmat the output into a single line. The output should read :


Number of Heads: 5
Number of Tails : 5

where the values change per the result of the coin flips.

here is the code:

#include <cstdlib> 
#include <ctime> 
#include <iostream> 
#include <iomanip>

using namespace std;

void flips();											// Function Prototype
int count;												//initializing the counters
int countH=0;											
int countT=0;
int flip;

int main() 
    for(count=0; count<10; count++)
	flips();										// Calling function flip()

	cout <<"\n\n\n\t\tNumber of Heads:  "<<countH<<endl;
	cout <<"\t\tNumber of Tails:  "<<countT<<endl<<endl<<endl; 
	return 0;

	void flips()									// Defination of flip() funtion
		flip = (rand()%2)+1; 
	if (flip < 2)
			cout <<"H";

this is what i get for output:


Number of Heads: 8
Number of Tails: 2

Press any key to continue . . .

so my question is how do i center the first line ?


7 Years
Discussion Span
Last Post by Clinton Portis

When using random numbers there is no guarentee you will get 5 heads and 5 tails.

yes, i understand that . The issue is having the output formatted where the "H" and "T" line is center of the page, as one line ... as opposed to the top left of the page. if you run the code you will see what i mean.



so my question is how do i center the first line ?

From what I understand, you are wanting to center a line of text on the dos console screen.

Assuming that the standard screen will support 80 characters, we can derive the following formula:

40 - (string length / 2) = where you should start outputting your text in order to have a centered appearance.

We can also use the setw() function from <iomanip> to help us with our centering needs:


string temp;
int spaces = 0;

if(flip < 2)
     temp =+ 'H';
     temp =+ 'T';

     spaces = 40-(temp.length() / 2);
     cout << setw(spaces) << temp;

So to summarize our code, we first perform a boolean test to determine which block of code to perform; if flip < 2 then 'H' else 'T'. We then use the plus/equals =+ operator to 'concantinate' (or accumulate) an array of H's and T's into a <string> class object. We then perfrom simple math to determine an offset of the midpoint of our screen in which to start outputting text. We used the setw() function (from <iomanip>) to set the number of preceding white spaces. We use the length() string member function to return the number of characters in the string.

Edited by Clinton Portis: 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.