Один из способов - сначала поймать их как строки (лучше использовать fgets()
для этого, чем scanf()
):
char buf_a[30];
char buf_b[30];
fgets(buf_a, sizeof(buf_a), stdin);
fgets(buf_b, sizeof(buf_b), stdin);
, а затем проанализировать входные строки:
sscanf(buf_a, "n = %d", &n);
sscanf(buf_b, "m = %d", &m);
#include <stdio.h>
int main (void)
{
char buf_a[30];
char buf_b[30];
int n = 0, m = 0;
while (1)
{
if ( !fgets(buf_a, sizeof(buf_a), stdin) ||
!fgets(buf_b, sizeof(buf_b), stdin) )
{
// error routine.
}
if ( sscanf(buf_a, "n = %d", &n) &&
sscanf(buf_b, "m = %d", &m) )
break;
printf("Invalid input! Please repeat your input.\n");
}
printf("%d\n", n);
printf("%d", m);
}
Исполнение:
./a.out
n = 5
m = 4
5
4