Ввод в C. Scanf, прежде чем получает. проблема

Я довольно новичок в 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);

Это будет работать. Хотя я не могу изменить порядок, и мне нужно, как есть. Кто-нибудь может мне помочь ? Может быть, мне нужно использовать некоторые другие функции. Спасибо!

Ответы на вопрос(8)

Ваш ответ на вопрос