typedef struct
{
char podrucje[32];
char opis[128];
}kvar;
typedef struct
{
char ime_podnosioca[16];
char prezime_podnosioca[16];
kvar k;
int popravljeno;
}prijava;
void main()
{
prijava prijave;
printf("Unesite ime i prezime podnosioca:\n");
scanf("%s%s",prijave.ime_podnosioca, prijave.prezime_podnosioca);
printf("Unesite podrucje koje obuhvata kvar:\n::>");
gets(prijave.k.podrucje);
printf("Unesite opis kvara:\n::>");
gets(prijave.k.opis);
}
调试应用程序后,我收到此错误,此处为屏幕截图:http://www56.zippyshare.com/v/83042434/file.html
答案 0 :(得分:2)
应注意两点:
gets
是邪恶的,在标准C中不再存在。请改用fgets
。
使用scanf
和fgets
时应该小心,因为scanf
会在缓冲区中留下\n
个字符,以便下次调用输入读取函数。在\n
函数之后,fgets
会读取scanf
。
答案 1 :(得分:0)
我已经添加了一个获取,现在它可以工作了。
typedef struct
{
char podrucje[32];
char opis[128];
}kvar;
typedef struct
{
char ime_podnosioca[16];
char prezime_podnosioca[16];
kvar k;
int popravljeno;
}prijava;
void main()
{
prijava prijave;
printf("Unesite ime i prezime podnosioca:\n");
scanf("%s%s",prijave.ime_podnosioca, prijave.prezime_podnosioca);
printf("Unesite podrucje koje obuhvata kvar:\n::>");
gets(prijave.k.podrucje);
**gets(prijave.k.podrucje);**
printf("Unesite opis kvara:\n::>");
gets(prijave.k.opis);
}