我遇到了一些问题,例如将字符串(例如名称)保存到struct字段中。我已经使用gets()
和fgets()
,但fgets()
也无法正常工作。使用gets()将字符串保存到结构中?
我从来没有机会输入第一个员工的名字;它直接跳到员工代码,然后跳过地址。出于某种原因,输入第二名员工时,我输入姓名和代码,然后再次跳过地址。
任何人都知道我在做什么错了?
#include <stdio.h>
typedef struct {
char name[150];
int code;
char add[300];
} tEmployee;
int main()
{
printf("How many employees would you like to register?\n");
int n;
scanf("%i", &n);
tEmployee employee[n];
for (int i = 0; i < n; i++)
{
printf("Name: ");
gets(employee[i].name);
printf("Code: ");
scanf("%i", &employee[i].code);
printf("Address: ");
gets(employee[i].add);
printf("%s\n", employee[i].name);
printf("%i\n", employee[i].code);
printf("%s\n", employee[i].add);
}
return 0;
}
切勿使用'gets()'。 –
[永远不要使用gets()](http://stackoverflow.com/q/1694036/10077)。 –
还记得按下* scanf的*键吗?数字和输入?输入生成'\ n'。 'gets' /'fgets'消耗它,因此不等待进一步的输入。修复?在每个scanf后添加'getchar();'。 –