在下面打印的程序中,gets() 的问题是它仅第一次获取数据,并且每次后续调用都会导致 null,因为输入数字时 istream 中的杂散 \n 留下了。
main()
{
char name[20];
int number;
for(int i=0;i<5;i++)
{
printf("enter name");
gets(s);
printf("enter phone number");
cin>>a;
}
}
现在我的问题是,为什么当我使用scanf()
or时发生的情况不一样cin
?我的意思是 cin 和 gets() 获取它们的值的方式有什么区别,这使得 cin (和 scanf )能够成功地离开那个流浪\n
但不是gets()
?
PS:我知道 fgets(),gets() 已被弃用及其不良影响,通常也不使用它。