Возможно, вы захотите попробовать что-то вроде
#include <stdio.h>
int main(void) {
char buf[99];
int idx, n;
while (fgets(buf, sizeof buf, stdin)) {
buf[strcspn(buf, "\n")] = 0; // remove ENTER
if (sscanf(buf, "%*[^[][%d%n", &idx, &n) != 1) {
printf("no number in %s\n", buf);
} else {
printf("number found: %d (left over string: \"%s\")\n", idx, buf + n);
}
}
return 0;
}
См. Код, работающий на ideone