mit sscanf einlesen
-
Guten Tag,
ich habe eine String gegeben und möchte die 1. beiden Werte in Variablen schreiben.
Warum wird die Zahl nach dem G nicht erfasst?
Bzw. gibt es vielleicht bessere Methoden um dies zu realisieren als sscanf?int nummer; char* test = "G123 B14"; char eingabe; sscanf_s(test,"%c%d",&eingabe,&nummer); printf_s("%c%d",eingabe,nummer);
-
Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Lies die Dokumentation zu
sscanf_s()
in der msdn.test
deklarierst Du besser alsconst char*
.
-
Dein Titel und die Frage im Post passen nicht zusammen.
sscanf_s ist eine andere Funktion als
sscanf
.
Sie sind ähnlich, aber nicht gleich.
-
Tja, das war ein Griff ins Klo.
Du bist den unseligen MS-"Sicherheits"-Erweiterungen aufgesessen, (*_s) die es aber leider sogar bis in den Standard C11 geschafft haben.
Also entweder du benutzt sscanf_s so wie spezifiziert oder du verzichtest darauf und verwendest normal sscanf.
Für sscanf_s benötigst du für jeden c,s,[] conversion-specifier noch ein extra Argument mit den Länge des Speicherbereiches des zugehörigen Arguments.sscanf_s(text,"%c%d",&c,1,&d);
sscanf(text,"%c%d",&c,&d);