scanf ist halt unsicher wenn du z.B. einen String einliest, da kann es z.B. vorkommen, dass du mehr Speicher benötigst als reserviert ist. Nicht gerade gut für z.B. Systeme, die auf Sicherheit ausgelegt sind.
scanf_s dürfte klappen, alternativ kannst du auch was eigenes schreiben:
Auf die Schnelle:
int einlesen() {
int i = 0;
char tmp = 0;
while ((tmp = getchar()) != '\n') {
if (tmp >= '0' && tmp <= '9')
i = i * 10 + (tmp - '0');
}
return i;
}
Aber das kommt bestimmt noch.