kennen:lib:scanf
no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:lib:scanf [2019-11-20 16:15] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== scanf() ====== | ||
+ | ''# | ||
+ | |||
+ | <code cpp> | ||
+ | int scanf (const char *format, ...) | ||
+ | </ | ||
+ | | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Die Formatzeichenkette der '' | ||
+ | kann neben gewöhnlichen Zeichen | ||
+ | Platzhalter für andere Werte besitzen. | ||
+ | Nach einem '' | ||
+ | |||
+ | * ein '' | ||
+ | * eine ganzzahlige Längenangabe für die maximale Anzahl zu lesender Zeichen, | ||
+ | * ein Längen-Modifizierer wie | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | Der Platzhalter wird zwingend abgeschlossen durch einen Konversionsbuchstaben: | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Die Zeichen in den eckigen Klammern des " | ||
+ | Dabei können Bereiche durch '' | ||
+ | Steht als erstes Zeichen in der eckigen Klammer ein '' | ||
+ | werden die angegebenen Zeichen zurückgewiesen: | ||
+ | '' | ||
+ | '' | ||
+ | |||
+ | Den Platzhaltern wird ein folgendes Argument mit einem passenden Typ zugeordnet. | ||
+ | |||
+ | Achtung: | ||
+ | Damit die Argumentvariablen Werte auf der Funktion übernehmen können, | ||
+ | müssen sie als Adressen ''& | ||
+ | Vorsicht: C-Zeichenkettenvariablen sind schon Adressen auf das Anfangszeichen. | ||
+ | |||
+ | ==== Ergebnis ==== | ||
+ | Rückgabewert: | ||
+ | Die Funktion endet mit -1, wenn '' | ||
+ | Die Funktion beendet das Einlesen eines Platzhalters vor Erreichen eines whitespace-Zeichens | ||
+ | und geht weiter, wenn | ||
+ | * die angegebene Länge erreicht oder | ||
+ | * ein mit dem Platzhalter unverträgliches Zeichen erreicht wurde. | ||
+ | Die Funktion bricht ab, wenn | ||
+ | * das einzulesende Zeichen nicht mit dem entsprechenden normalen Zeichen der Formatzeichenkette übereinstimmt, | ||
+ | * ein Platzhalter mit dem aktuellen Zeichen der Eingabe nicht bedient werden kann. Die Werte ungelesener Argumentvariablen bleiben unverändert. Passen irgendein Platzhalter und der Argumenttyp (Zeiger!) nicht, ist das Verhalten undefiniert. | ||
+ | |||
+ | ==== Siehe auch ==== | ||
+ | [[..: | ||
+ | [[printf]], | ||
+ | [[fscanf]], | ||
+ | [[sscanf]]. | ||
+ | |||
+ | ==== Beispiel ==== | ||
+ | <code cpp scanf.cpp> | ||
+ | #include < | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | using namespace std; | ||
+ | int i = -1; | ||
+ | float f = -1; | ||
+ | double d = -1; | ||
+ | char str[20] = " | ||
+ | |||
+ | printf(" | ||
+ | scanf(" | ||
+ | |||
+ | printf(" | ||
+ | scanf(" | ||
+ | |||
+ | printf(" | ||
+ | scanf(" | ||
+ | |||
+ | printf(" | ||
+ | scanf(" | ||
+ | // | ||
+ | |||
+ | printf(" | ||
+ | } | ||
+ | </ | ||
kennen/lib/scanf.txt · Zuletzt geändert: 2019-11-20 16:15 von 127.0.0.1