Wenn ...scanf die Untersuchung abbricht

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu scanf, wscanf

Eine ......scanf-Funktion kann die Untersuchung eines bestimmten Eingabefeldes abbrechen, bevor das normale Feldendezeichen (Whitespace-Zeichen) erreicht ist, oder kann die gesamte Verarbeitung beenden.

Abbrechen und zum nächsten Eingabefeld wechseln

Die ...scanf-Funktionen brechen unter folgenden Voraussetzungen die Untersuchung und Speicherung des aktuellen Eingabefeldes ab und setzen mit dem nächsten fort:

  • Ein Zuweisungsunterdrückungszeichen (*) erscheint im Formatbezeichner nach dem %. Das aktuelle Eingabefeld wird untersucht, aber nicht gespeichert.
  • width Zeichen wurden gelesen.
  • Das nächste gelesene Zeichen kann nicht für das aktuelle Format konvertiert werden (z.B. ein A, wenn das Format dezimal ist).
  • Das nächste Zeichen im Eingabefeld erscheint nicht in der Suchmenge (oder erscheint nicht in einer invertierten Suchmenge).

Wenn scanf die Untersuchung des aktuellen Eingabefeldes aus einem dieser Gründe abbricht, wird davon ausgegangen, dass das nächste Zeichen nicht gelesen wurde und entweder:

  • das erste Zeichen des folgenden Eingabefeldes oder
  • das erste Zeichen einer nachfolgenden Leseoperation der Eingabe ist.

Beenden

......scanf-Funktionen werden unter den folgenden Voraussetzungen beendet:

  • Das nächste Zeichen in dem Eingabefeld steht im Widerspruch zu einem entsprechenden Nicht-Whitespace-Zeichen im Format-String.
  • Das nächste Zeichen in dem Eingabefeld ist EOF.
  • Der Format-String ist zu Ende.

Wenn eine Zeichenfolge, die nicht Bestandteil eines Formatbezeichners ist, im Format-String vorkommt, muss sie mit der aktuellen Folge der Zeichen im Eingabefeld übereinstimmen.

......scanf-Funktionen untersuchen die übereinstimmenden Zeichen, speichern diese aber nicht.

Wenn ein widersprüchliches Zeichen vorkommt, verbleibt es so im Eingabefeld, als ob es nie von der ......scanf-Funktion gelesen worden wäre.

Siehe auch