关于getchar();的问题!
帮忙看看下面的程序,目的是读入10个职工的姓名和职工号,为什么程序这样写有在输入的时候会有问题(敲入姓名的时候如果有空格,就有问题了!)
#include <stdio.h>
main()
{
void input(int num[10],char name[10][20]);
int num[10];char name[10][20];
input(num,name);
}
void input(int num[10],char name[10][20])
{
int i;
for(i=0;i <10;i++)
{
printf( "请输入第%d个职工号: ",i+1);
scanf( "%d ",&num[i]);
printf( "请其姓名: ");/*--------2-------*/
gets(name[i]);或scanf( "%s ",&name[i]);/*-------1------*/
}
}
但是在2语句和1语句中间加入一句getchar();就可以正确输入.
请问这是为什么?
[解决办法]
因为默认以空格为结束符的。