scanf("%d",&n);
for(i=0;i<n;i++)
{
gets(a[i]);
}
这样会少输入一个,原因就是当你scanf一个数时,按下回车键,会将换行符输入缓冲区,而gets()接收字符串是以换行符结束。因此在scanf时的那个换行符会被当做一次接收。
解决方法:
1,scanf("%d\n",&n);
在scanf中加入一个换行符
2,在gets()前面加fflush(stdin),以清空缓冲区
scanf("%d",&n);
for(i=0;i<n;i++)
{
gets(a[i]);
}
这样会少输入一个,原因就是当你scanf一个数时,按下回车键,会将换行符输入缓冲区,而gets()接收字符串是以换行符结束。因此在scanf时的那个换行符会被当做一次接收。
解决方法:
1,scanf("%d\n",&n);
在scanf中加入一个换行符
2,在gets()前面加fflush(stdin),以清空缓冲区