我正在学习C++。我在格式化程序输出时遇到问题。我想在此处打印完全对齐的列,但到目前为止我做不到,这是我的代码:

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";
}

在类(class)员工中,我有打印员工方法:
void printEmployee() const
{
    cout << fixed;
    cout << surname << setw(10) << empNumber << "\t" << setw(4) << hourlyRate << "\n";
}

问题是,当我打印“flinstones”行时,emp编号和费率未对齐。发生这样的事情:

石材43 35.750000
瓦砾163 12.000000
打火石97 15.750000
卵石104 10.250000
岩壁15 22.750000

有谁能够帮我? (我试图添加标签..但没有帮助)

最佳答案

在打印雇员方法的类雇员中:
使用此行进行打印。

cout << setw(20) << left << surname << setw(10) << left << empNumber << setw(4) << hourlyRate << endl;

您忘记添加“<< left”。如果要左对齐,这是必需的。

希望它会有用。

07-24 09:45
查看更多