键盘输入的数据怎么对齐啊?

 

#include 
#include 
using namespace std;
struct date
{
    int year;
    int month;
    int day;
};
struct student
{
    int num;
    char name[20];
    struct date birthday;
    float score;
};
student Input()
{
    student stud;
    cout << "请输入学号、姓名、出生日期和成绩:";
    cin >> stud.num >> stud.name >> stud.birthday.year>> stud.birthday.month>>stud.birthday.day >> stud.score;
    return stud;
}
void Output(student& stud)
{
    cout << setw(10) << stud.num << setw(15) << stud.name << setw(20) << stud.birthday.year << stud.birthday.month << stud.birthday.day<< setw(10) << stud.score;
}
int main()
{
    int i;
    student tmp;
    student studs[4];
    for (i = 0; i < 4; i++)
        studs[i] = Input();
    cout << setw(10) << "学号" << setw(15) << "姓名" << setw(20) << "出生日期" << setw(10) << "成绩"<<'\t';
    for (i = 0; i < 4; i++)
        Output(studs[i]);
    cout << endl;
    return 0;
}

```c++

请输入学号、姓名、出生日期和成绩:23901 李芳 2004 01 23 99
请输入学号、姓名、出生日期和成绩:23902 王平 2004 03 12 78.5
请输入学号、姓名、出生日期和成绩:23905 张三 2003 12 25 67
请输入学号、姓名、出生日期和成绩:29907 李四 2004 05 23 87
      学号           姓名            出生日期      成绩      23901           李芳                2004123        99     23902           王平                2004312      78.5     23905           张三                20031225        67     29907           李四                2004523        87