sprintf und sscanf
-
Kann mir jemand die Funktionen sprintf und sscanf aus <cstring> erklären, und was ich damit machen kann? Ich hab mir das zwar grad bei einer C++ Referenz durchgelesen, aber ich verstehe da nur Bahnohof, und ein Beispiel ist auch nicht gegeben, sondern nur ganz viele Argumente werden erklärt die zu vergeben sind.....ich blicks net. Und ich schau mir halt gerade alle Funktionen aus <cstring> genauer an, und jetzt wäre die zwei hier an der Reihe.
Ich hoffe es kann mir jemand in normal verständlichem Deutsch beschreiben
Und was heißt den da bitte immer "formatieren" ich lese dauern "formatieren" im Zusammenhang mit den beiden Funktionen, formatieren ist doch löschen oder?
ZITAT:sprintf:
Schreibt formatierte Ausgabe in einen String....sscanf:
Liest und formatiert Eingaben aus einem StringHää? Braucht man die Funktionen überhaupt einmal?
Dankeschön schon mal im Voraus.PS: Was ich sehr toll fände, wenn ihr mit beiden Funktionen ein verständliches und nachvollziehbares Code Beispiel machen könntet.
-
Mit sprintf kannst du dir leicht Zeichenketten zusammenstückeln
Also das gleich wie bei einer ausgabe in der Konsole oder dgl.
z.b. du willst "Hallo, mein Name ist Thomas und ich bin 20 Jahre alt!"
Wobei Thomas und 20 jeweils Variablen sind...char name[]="Thomas"; int alter=20; char ausgabe[256]; sprintf(ausgabe,"Hallo, mein Name ist %s und ich bin %d Jahre alt",name, alter);
für sscanf ...ja ist ein gegenstück...statt ausgabe...einlesen:
int main( void ) { char tokenstring[] = "15 12 14..."; char s[81]; char c; int i; float fp; // Input various data from tokenstring: // max 80 character string: sscanf( tokenstring, "%80s", s ); // C4996 sscanf( tokenstring, "%c", &c ); // C4996 sscanf( tokenstring, "%d", &i ); // C4996 sscanf( tokenstring, "%f", &fp ); // C4996 // Note: sscanf is deprecated; consider using sscanf_s instead // Output the data read printf( "String = %s\n", s ); printf( "Character = %c\n", c ); printf( "Integer: = %d\n", i ); printf( "Real: = %f\n", fp ); }
Ob man die jemals braucht...ja klar...
Wenn du eine Ausgabe formatieren willst...!= Löschen
z.b.das ist einfach nur ein haufen rauten:
# #
# #formatiert hingegen:
##### # # # # #####
Ein Rechteck
Hoffe das war verständlich...
-
sprintf und scanf sind C-Erben. Die benutzt man in C++ im allgemeinen nicht. Benutz lieber std::cout/std::cin!