Scanf
-
Hi!
Ich habe eine Frage bezüglich sscanf!
Kann man eigene Aufzählungstypen einlesen, wenn ja mit welchem Zeichen??
Der Aufzählungstyp besteht nur aus einen Großbuchstaben, deswegen denk ich mal muss man das ganze erst in einen Char einlesen und dann per case oder sonst was auswerten??
Ich habe auch noch ein Problem damit eine Zeichenkette einzulesen!Die Zeichenkette sieht so aus -> "Hallo du"
Wie kann ich die Zeichenkette in einen String speichern??Also ich suche nach den %Zeichen!
-
Für enums gibt es keinen eigenen Formatkenner - entweder du liest sie als String ein und suchst dir selber den zugehörigen Wert raus oder du liest den Wert der enum-Konstanten mit %d ein.
Für Strings gibt es zwei Möglichkeiten: %s liest bis zum nächsten Whitespace, %[...] liest alles, was in den angegebenen Zeichenbereich passt (z.B 'a-z' - Kleinbuchstaben oder '^\n' - alles außer NewLine).
-
Aso!
%d geht leider nicht, dannn werde ich es bei einem char belassen!Noch eine Frage zu %[...]!
Wie kann ich den mehrer Zeichenbereiche angeben??
so -> %['a-z' && 'A-Z' && ^'0-9']??
oder ohne und?
-
Thes-One schrieb:
Aso!
%d geht leider nicht, dannn werde ich es bei einem char belassen!Was erwartest du? Zur Laufzeit hast du nur noch die Werte der enum-Elemente - die dahinterstehenden Bezeichner kennt bestenfalls noch dein Debugger.
Noch eine Frage zu %[...]!
Wie kann ich den mehrer Zeichenbereiche angeben??
so -> %['a-z' && 'A-Z' && ^'0-9']??
oder ohne und?Einfach hintereinander weg angeben - %[abx] erfasst die drei angegebenen Buchstaben, %[a-zA-Z0-9] erfasst alle Buchstaben und Ziffern. (und das ^ als erstes Zeichen des Bereichs invertiert die Angabe - %[^a-zA-Z] liest alles bis zum ersten Buchstaben, der eingegeben wird.