|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#define PERSON 3
struct NUM
{
char name[10];
char number[10];
};
void main()
{
int i;
struct NUM num[PERSON];
for(i=0; i<PERSON; i++)
{
printf("Input the name:\n");
scanf("%s",&num[i].name); //或者用gets(num[i].name);
printf("Input the number:\n");
scanf("%s",&num[i].number); //或者用gets(num[i].number);
}
printf("NAME\t\t\t\t\tNUMBER\n");
for(i=0; i<PERSON; i++)
{
printf("%s\t\t\t\t\t%s\n",num[i].name, num[i].number);
}
}
这个程序的输入部分,如果我两个都是用的scanf或者两个都用gets就没有问题,但是如果一个用gets 一个用scanf,运行的时候,当进入第二次循环输入的时候,就会直接把Input name和Input number两句一起弹出,name就无法输入, 我试着第一个用gets第二个用scanf单步调试,看到执行到第二次循环输入name的时候就是赋值的空隔(num[i].name值为0x0012ff1c""),不会让输入,然后直接执行下一个printf了。这是为了什么!!!!????各位大侠!!!
|
|