Gefahren bei der Verwendung von% * c zum Löschen des Scanf-Puffers
Besteht die Gefahr, dass% * c in scanf () verwendet wird, um den Puffer bei Bedarf zu löschen?
Zum Beispiel:
char c;
for (int i = 0; i < 5; i++) {
scanf("%c%*c", &c);
}
Oder
char* str;
char c;
int i;
scanf("%s", str);
scanf("%d%*c", &i);
scanf("%c%*c", &c);
Sollte es Bedenken hinsichtlich Pufferüberläufen oder anderen Sicherheitsproblemen geben? Es scheint keine formale Dokumentation für die Verwendung des Sterns in scanf auf diese Weise für C zu geben (BEARBEITEN Dies ist nicht wahr), daher habe ich Probleme herauszufinden, was genau mit den zusätzlichen Zeichen passiert, die eingegeben werden. Gibt es eine bessere Möglichkeit, den Scanf-Puffer in C zu löschen?