Я новичок в C, и у меня проблема с вводом данных в программу.
Мой код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int a;
char b[20];
printf("Input your ID: ");
scanf("%d", &a);
printf("Input your name: ");
gets(b);
printf("---------");
printf("Name: %s", b);
system("pause");
return 0;
}
Он позволяет вводить идентификатор, но просто пропускает остальную часть ввода. Если я изменю порядок следующим образом:
printf("Input your name: ");
gets(b);
printf("Input your ID: ");
scanf("%d", &a);
Это будет работать. Хотя я НЕ МОГУ изменить порядок, и он мне нужен как есть. Кто-нибудь может мне помочь ? Возможно, мне нужно использовать какие-то другие функции. Спасибо!
gets
, летающие бешеные атакующие оцелоты вырвут вам глазницы. Так что не надо. - person Tyler McHenry   schedule 02.03.2010scanf
зло — c-faq.com/stdio/scanfprobs.html - person jschmier   schedule 03.03.2010gets(b);
изменить наscanf(" %19[^\n]", b);
- person BLUEPIXY   schedule 15.03.2015