Koenig13 Geschrieben 27. Januar 2009 Geschrieben 27. Januar 2009 Ich habe von unserem Prof. den folgenden Quelltext erhalten: Code: #include <stdio.h> //header file für Ein-/Augabe #include <stdlib.h> //header file für Standartbibliotheken #include <string.h> //header file für Zeichenfolgen struct person { char *name; struct person *nachfolger; }; typedef struct person person; person * person_anlegen(char * data) { person *tmp=(person *)malloc(sizeof(person)); int laenge = strlen(data); tmp->name =(char *)malloc(laenge+1); strcpy(tmp->name, data); tmp->nachfolger = NULL; return tmp; } void element_einhaengen(person* element, person **listenlink) { element->nachfolger = *listenlink; *listenlink = element; } void ausgabe(person *liste) { person *zeiger = liste; while(zeiger != NULL) { printf("Name: %s ,\n", zeiger->name); zeiger=zeiger->nachfolger; } printf("Ende \n"); } void ausgabe_file(person *liste, char * filename) { FILE * file; person *zeiger = liste; file = fopen(filename, "w+"); if(file != NULL) { while(zeiger != NULL) { fprintf(file, "Name: %s\n", zeiger->name); fprintf(file, "#\n"); zeiger=zeiger->nachfolger; } fprintf(file,"## \n"); } fclose(file); } void einlesen_file(person **listenlink, char * filename) { FILE * file; char wort[100]; file = fopen(filename, "r+"); if(file != NULL) { while(fscanf(file, "%s", wort) && strcmp(wort, "##")) { if(strcmp(wort,"#")) element_einhaengen(person_anlegen(wort),listenlink); } } fclose(file); } void leeren_file(person **listenlink) { person *zeiger = *listenlink; while(zeiger != NULL) { *listenlink = (*listenlink)->nachfolger; free(zeiger->name); free(zeiger); zeiger = *listenlink; } *listenlink = NULL; } main() { person *anfang = NULL; char wort[20]; printf("Bitte Namen eingeben:"); scanf("%20",wort); wort[19]=0; element_einhaengen(person_anlegen(wort),&anfang); //ausgabe(); //ausgabe_file(,"nutzer.txt"); } Meine Fragen dazu sind: 1. Kann man die Prozeduren problemlos im main() nutzen, oder ist der Quelltext unvollständig. 2. Welche Parameter muss ich den letzten beiden auskommentierten Funktionen übergeben, damit sie funktionieren? Ich hab schon alles ausprobiert was mir eingefallen ist. Kann mir bitte jemand helfen? Zitieren
Koenig13 Geschrieben 27. Januar 2009 Autor Geschrieben 27. Januar 2009 Es geht mir nur um das Verständniss. :new Zitieren
setiII Geschrieben 27. Januar 2009 Geschrieben 27. Januar 2009 1. Kann man die Prozeduren problemlos im main() nutzen, oder ist der Quelltext unvollständig. Hab ich gemacht: g++ test.cpp => kein Fehler => Syntaktisch richtig, also nutzbar Ich hab schon alles ausprobiert was mir eingefallen ist. Ja mein Prof sagte immer das man lieber Programmieren lernen sollte anstelle alles auszuprobieren. Ich habe von unserem Prof. den folgenden Quelltext erhalten: Aus deiner Fragestellung entnehme ich das du entweder so wenig Ahnung von C hast das du noch nicht mal ne ordentliche Frage dazu formolieren kannst, oder aber das du zu faul dazu bist. Im ersten Fall würde ich dir raten, kein Fach im Studium zu belegen das mit Programmieren zu tun hat, weil in denen muss man immer Syntax lernen. (Ich hoffe du bist kein Informatiker) im zweiten Falle würd ich sagen Pech gahabt. Nur so aus interesse und die Frage mein ich ernst, was Studiierst du eigentlich? (Bachelor, Master)? Zitieren
Koenig13 Geschrieben 27. Januar 2009 Autor Geschrieben 27. Januar 2009 (bearbeitet) Die genaue Frage lautet: Welchen Wert muss ich Ausgabe() übergeben, damit ich die aufgenommen Liste ausgeben kann. Das ist das einzige was ich nicht erfassen kann. Ich kann programmieren, sonst wär ich nicht im letzten Semester durch die Praktika gekommen. Nur haben wir uns einfach zu wenig mit Zeigern und Structs befasst. Bearbeitet 27. Januar 2009 von Koenig13 Zitieren
Koenig13 Geschrieben 27. Januar 2009 Autor Geschrieben 27. Januar 2009 ... studier ich Wi-Info und hab mein Abitur in Informatik abgelegt. Zitieren
Klotzkopp Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 Die genaue Frage lautet: Welchen Wert muss ich Ausgabe() übergeben, damit ich die aufgenommen Liste ausgeben kann.Naja, so viele Variablen mit passendem Typ gibt's in main nicht. Zitieren
TDM Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 ausgabe(anfang); ausgabe_file(anfang,"nutzer.txt"); Steht doch da, das beide einen Zeiger auf Person erwarten... :floet: Zitieren
Koenig13 Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 das dacht ich auch, nur kommt dann folgende Ausgabe: ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ Zitieren
Klotzkopp Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 Das liegt daran, dass du nicht richtig einliest. Was soll denn "%20" sein? Zitieren
Koenig13 Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 Ich habs: bei scanf stand nur %20. Da fehlte nur das ein s->%20s Zitieren
setiII Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 Also bis ich die Aufgabe gleich in 2 Foren eingestellt hättte (ähm auch mit dem gleichen Text), da hätt ichs dann schon selber nachgeschlagen. Hilfe! Structs in C - Forum de Luxx Ich bin bei sowas einfach nur Sprachlos, was mich immer so entsetzt ist diese wie soll ich sagen, faulheit. Ein Studium sollte zu selbstständigen und wisenschaftlichen Arbeiten befähigen. Gut du hast das Forum vermutlich selbst bedient, das muss man dir lassen, ich bin entsetzt. Ach ja die rechtschreibfehler und tippfehler dürft ihr behalten. Zitieren
Koenig13 Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 Was soll ich sagen. Wenns Faulheit wäre, hätte ich das schon vor 2 Wochen reingestellt. Jetzt ist das nur noch Verzweiflung. Ich hab schon Stunden mit Nachschlagen verbracht, nur find ich nirgendwo ne eindeutige Erklärung. Zitieren
Koenig13 Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 Oder kennt ihr gute Quellen, ich will meinen guten Willen zeigen. Zitieren
TDM Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 C Syntax 1st google hit. Wie man Fragen richtig stellt: eine Anleitung wie man Fragen erfolgreich in Usenet, Mailing Listen und Webforen stellt. 2nd google hit. :floet: Ich persönlich vermisse hier einfach die Grundlagen... Zitieren
Koenig13 Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 Danke, das werd ich mir zu Herzen nehmen und sehe dieses Thema als abgeschlossen. Zitieren
AndiE Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 Hallo, mir kommen die Funktionen in dem Quelltext inzwischen sehr bekannt vor. Es scheint um das selbe Log-In Problem mit verketteter Liste zu gehen, dass wir schon an mehreren anderen Stellen hatten. Dazu passt, dass dort auch WirtschaftsInfo studiert wurde, nd die auch keine "Ahnung" vo Listen und Strukturen hatten. Ich kann programmieren, sonst wär ich nicht im letzten Semester durch die Praktika gekommen. Nur haben wir uns einfach zu wenig mit Zeigern und Structs befasst. Was soll denn bitte das Programm machen? Bis jetzt liest es einen Text ein, speichert diesen im Speicher und gibt eine Datei aus. Beides hat nichts miteinander zu tun. Der Speicher wird nicht mal wieder freigegeben. Wie schon jemand schrieb, da fehlen Grundlagen, denke ich. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.