sscanf() macht nicht das, was ich will...
-
Horst2 schrieb:
scanf() liest nur bis zum ersten Leerzeichen.
das kann man aber auch ändern durch bestimmte zeichen im format-string. sorry, aber ich weiss leider auch nicht mehr wie's aussehen muss
-
string: "Daten string1 hallo string2 ID 4711"
Code:
sscanf(string, "Daten %s hallo %s, ID %d", string1, string2, int1);
Mir ist es nur so bekannt, aber ich benutze scanf() auch eher selten
-
Ok, danke, es klappt so
Dachte sscanf wär so ne art suchfunktion
-
Mal ein anderes Problem. Ich will doch nur den Vornamen und Nachnamen in ein Array abspeichern, das Einlesen klappt auch, aber mit der Ausgabe habert es noch, woran liegt das?
struct Mappe{ char *nachname; char *vorname; int note; }; struct Mappe Person[3]; printf("%s\n", "Namen eingeben:"); scanf("%s %s ", Person[0].nachname, Person[0].vorname); printf("\n%s%s%s", "Person: ", Person[0].nachname, Person[0].vorname);
-
Fehler gefunden, habe & vergessen!
-
anfang schrieb:
Fehler gefunden, habe & vergessen!
Du schreibst aber trotzdem fleissig in's Nirvana. Du solltest schon speicher für "nachname" und "vorname" reservieren. So wird das nix...
-
ne das Auslesen klappt immer noch nicht wie ich es will.
-
Mach's mal so:
#include <stdio.h> #define BUFFER_SIZE 20 #define ARRAY_SIZE 3 struct Mappe{ char nachname[BUFFER_SIZE]; char vorname[BUFFER_SIZE]; int note; }; struct Mappe Person[ARRAY_SIZE]; char buffer[BUFFER_SIZE]; int i; int main(void){ for(i=0;i<ARRAY_SIZE;i++){ printf("%d. Namen eingeben: ",i+1); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%s %s ", &Person[i].nachname, &Person[i].vorname); } for(i=0;i<ARRAY_SIZE;i++){ printf("\nPerson: %s %s\n", Person[i].nachname, Person[i].vorname); } return 0; }
Edit: Arraydimensionen mit #define festgelegt
-
TactX schrieb:
Mach's mal so:
#include <stdio.h> #define BUFFER_SIZE 20 #define ARRAY_SIZE 3 struct Mappe{ char nachname[BUFFER_SIZE]; char vorname[BUFFER_SIZE]; int note; }; struct Mappe Person[ARRAY_SIZE]; char buffer[BUFFER_SIZE]; int i; int main(void){ for(i=0;i<ARRAY_SIZE;i++){ printf("%d. Namen eingeben: ",i+1); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%s %s ", &Person[i].nachname, &Person[i].vorname); } for(i=0;i<ARRAY_SIZE;i++){ printf("\nPerson: %s %s\n", Person[i].nachname, Person[i].vorname); } return 0; }
Edit: Arraydimensionen mit #define festgelegt
Warum benutzt du hier globale Variablen?
Caipi
-
Caipi schrieb:
Warum benutzt du hier globale Variablen?
Weil es für dieses Beispiel scheissegal ist.