Я пишу программу C для выбора данных со входа std, который начинается с числа, указывающего количество наборов данных, тогда есть N пар данных в форме : (xy), поэтому я пишу код, как показано ниже:читать данные и пропускать parenthese с помощью scanf
#include <stdio.h>
int main()
{
int n_sets;
scanf("%d", &n_sets);
int i;
for(i = 0; i < n_sets; ++i)
{
int m, n;
scanf("(%d %d)", &m, &n);
printf("%d\t%d\n", m, n);
}
return 0;
}
но это не работает. После ввода номера набора данных программа напечатает неинициализированный m & n напрямую. Но когда я добавляю пробел перед (%d %d)
, он отлично работает. Кто-нибудь может это объяснить?
1. Проверьте возвращаемое значение из 'scanf' 2. Используйте отладчик, чтобы узнать, что происходит не так. –
Это напоминает мне' fflush() '.. – Lucio
@Lucio: из того, что я помню, fflush на stdin является расширением Microsoft , – zentrunix