以下に印刷されたプログラムでは、 gets () の問題は、データを初めて取得するだけであり、その後のすべての呼び出しでヌルになることです。これは、番号の入力中に 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() は非推奨であり、悪影響があるため、通常は使用しません。