c++ 链表的输入输出函数

题目
小蓝负责一个公司的考勤系统, 他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗。
当员工刷卡时, 会在后台留下一条记录, 包括刷卡的时间和员工编号, 只 要在一天中员工刷过一次卡, 就认为他到岗了。
现在小蓝导出了一天中所有员工的刷卡记录, 请将所有到岗员工的员工编 号列出。
输入格式
输入的第一行包含一个正整数 n, 表示一天中所有员工的刷卡记录的条数。 接下来n 行, 每行包含一条刷卡记录, 每条刷卡记录的格式为:
HH:MM:SS ID
其中 HH:MM: SS 表示刷卡时间, HH 为一个 0 到 23 之间的两位十进制整数 (可能含前导 0 ) 表示时, MM 为一个 0 到 59 之间的两位十进制整数 (可能含前 导 0) 表示分, SS 为一个 0 到 59 之间的两位十进制整数 (可能含前导 0 ) 表 示秒, ID 为一个不含前导 0 的整数表示员工的编号。
所有记录按照刷卡时间升序排列, 可能同一时刻有多人刷卡。
输出格式
输出若干行, 每行包含一个整数, 按照从小到大的顺序输出, 表示到岗员 工的编号。

问题描述
我的思路是:
先把数据存储在一个链表里面,然后给链表排序,最后输出
遇到问题是:
我把数据存储在链表,没排序,就输出结果,想先看看这两部分代码对不对,然后就出现问题了。
不管我输入几个员工人数 amount ,他的输出都是amount 个 amount,并且只能读入我输入的前两个结构体,就自动输出了

img

希望可以帮忙看看,哪里出错了,是输入函数有问题还是输出函数有问题,还是其他问题

#include
using namespace std;
//员工出勤情况 

typedef struct people{  //时间以及员工编号 
    int h;
    int m;
    int s;
    int id;
    char a;
    char b;
}StaffInfo; 

void StaffInput(StaffInfo &staff)//结构体输入函数
{
    cin>>staff.h;
    cin>>staff.a;
    cin>>staff.m;
    cin>>staff.b;
    cin>>staff.s;
     
} 

void ListInput(list &StaInfoList,int amount)//链表输入函数 
{
    StaffInfo staff;
    for(int i=0;iStaffInput(staff);
        StaInfoList.push_front(staff);
    }
}

void ListDisplay(list StaInfoList)//结果输出函数 
{
    for(list::iterator it=StaInfoList.begin();it!=StaInfoList.end();it++)
    {
        cout<id<int main()
{
    int personAmount;
    cin>>personAmount;
    
    list StaInfoList; 
    ListInput(StaInfoList ,personAmount);
    
//    StaInfoList.sort();
//    cout<<"排序完成";
    
    ListDisplay(StaInfoList);
     
    return 0;
}

14行结构体输入函数那儿压根就没有写id 属性啊

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^