cin.get(name, 20, ','); cin >>l >> age >> l;//为什么要加l

cin.get(name, 20, ','); cin >>l >> age >> l;//为什么要加l 输入 姓名,年龄 为什么第二行代码cin后要加L,第一段的逗号结束符如何影响第二行代码的
网友
网友:
这是一种技巧 cin.get(name, 20, ','); //输入的时候如果以逗号结束或者多于19个字符,那么这个逗号或者多出的字符会留在输入缓冲区,如果这个时候执行cin>>age,age就会接收留在缓冲区的字符,然后因为格式不匹配拒绝读取,为了避免这种情况,就用cin>>l把留在缓冲区的字符吸收掉(l应该是char指针或者string类的变量)。而cin>>age以后,输入缓冲区又会留下一个'\n',那么下次接收输入时如果是字符串类的对象就会把这个'\n'当作一次输入而影响正常输入,后面的>>l就是吸收这个'\n'的。 (类似int这样的数值型变量会忽略开头的'\n',不会受影响)
我来回答