I am learning C++. I have a problem formatting the output of my program. I would like to print there columns perfectly aligned but so far I cannot do it, here is my code:
int main()
{
employee employees[5];
employees[0].setEmployee("Stone", 35.75, 053);
employees[1].setEmployee("Rubble", 12, 163);
employees[2].setEmployee("Flintstone", 15.75, 97);
employees[3].setEmployee("Pebble", 10.25, 104);
employees[4].setEmployee("Rockwall", 22.75, 15);
printEmployees(employees, 5);
return 0;
}
// print the employees in my array
void printEmployees(employee employees[], int number)
{
int i;
for (i=0; i<number; i++) {
employees[i].printEmployee();// this is the method that give me problems
}
cout << "\n";
}
in the class employee I have the print employee method:
void printEmployee() const
{
cout << fixed;
cout << surname << setw(10) << empNumber << "\t" << setw(4) << hourlyRate << "\n";
}
Problem is when I print "flinstones" line the emp number and rate are not lined up. something like this happens:
Stone 43 35.750000 Rubble 163 12.000000 Flintstone 97 15.750000 Pebble 104 10.250000 Rockwall 15 22.750000
Can anybody help me? (I tried to add tabs.. but it didn't help)
In the class employee of print employee method: Use this line to print.
cout << setw(20) << left << surname << setw(10) << left << empNumber << setw(4) << hourlyRate << endl;
You forgot to add "<< left
". This is required if you want left aligned.
Hope it ll useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With