lapi_k Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 hallo und zwar hab ich mal ne frage zur c programmierung. Wie kann ich die Eingabe mit einer txt datei vergleichen. Es handelt sich hierbei um ein login in einer doppelt verketteten liste Zitieren
lapi_k Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 void main() //*write+Ausgabe { FILE *ziel; struct nutzer *zeiger; ziel=fopen("nutzer.txt","r"); if(NULL==ziel) { fprintf(stderr,"Datei nutzer.txt kann nicht geöffnet werden!\n"); exit (0); } zeiger=anfang; while(zeiger!=NULL) { printf ("Bitte geben Sie folgendes ein, um sich erfolgreich anzumelden!\n"); printf ("Vornamen:\n"); scanf("%s",strcmp vorname); printf ("Nachname:\n"); scanf("%s",strcmp nachname); printf("Kontonummer:\n"); scanf("%s",strcmp kontonummer); printf("Passwort:\n"); scanf("%s",strcmp passwort); if(strcmp(char vorname,char nachname,char kontonummer,char passwort)==0) { printf ("Sie haben sich erfolgreich eingeloggt\n"); } fprintf(ziel,"%s|%s|%s|%s\n", zeiger->vorname,zeiger->nachname,zeiger->kontonummer,zeiger->passwort); zeiger=zeiger->next; } fclose(ziel); } so? Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Ist das dieselbe Aufgabe, zu der du schon zwei Threads aufgemacht hast? Dann ist das so Unsinn. Du sollst den Inhalt einer Datei auslesen, und daraus eine verkette Liste aufbauen. Zitieren
lapi_k Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 ja das ist die selbe aufgabe... leider das is jetzt aber auch nur ein ausschnitt von dem was ich bis jetzt geschrieben hab .. warum ist das unsinn? Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Weil du dich durch eine verkette Liste hangelst, in der nichts drin steht. Und weil du nicht aus der Datei liest, sondern in die Datei schreibst. Zitieren
lapi_k Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Weil du dich durch eine verkette Liste hangelst, in der nichts drin steht. ... was heißt denn ich hangel mich durch? Und weil du nicht aus der Datei liest, sondern in die Datei schreibst. ziel=fopen("nutzer.txt","r"); das heißt doch das ich sie öffne um aus ihr zu lesen Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 ... was heißt denn ich hangel mich durch?Du läufst über den next-Zeiger von Eintrag zu Eintrag. Das wäre ja auch nicht falsch, wenn denn in der Liste irgendwas drin wäre. ziel=fopen("nutzer.txt","r"); das heißt doch das ich sie öffne um aus ihr zu lesenMag ja sein, aber du tust es leider nicht. Statt dessen versuchst du, mit fprintf in die Datei zu schreiben. Zitieren
lapi_k Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Du läufst über den next-Zeiger von Eintrag zu Eintrag. Das wäre ja auch nicht falsch, wenn denn in der Liste irgendwas drin wäre. also ich weiß nich irgendwie versteh ich da was falsch .. ich hab die liste erstellt mit vorname,nachname,kto,passwort .. und dann zeige ich immer mit dem next zeiger drauf Mag ja sein, aber du tust es leider nicht. Statt dessen versuchst du, mit fprintf in die Datei zu schreiben. fprintf is doch nur zur ausgabe da oder? Zitieren
AndiE Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Hallo, ich glaube, wir sollten das Ding mal von einer anderen Seite betrachten: 1. Was passiert bei einem Login? Gespeicherter Name und gespeichertes Passwort werden mit dem eingegebenen Namen und dem eingegebenen Passwort verglichen. Sind beide Vergleiche i.O., wird der Zugang freigegeben. 2. Was passiert bei mehreren Leuten? a). Suche die Person, für die eingegebener Name gleich gespeicherter Name ist. . Vergleiche Passwort der gespeicherten Person mit eingegebenem Passwort. 3. Dabei gibt es zwei Möglichkeiten aa) die Anzahl der Personen ist bekannt. Die Personen werden als Sammlung/Feld/array gespeichert bb) die Anzahl der Personen ist unbekannt. Die Personen sind als Liste gespeichert. Das bedeutet für die Funktion des Programmes: 1. Lese die bekannten Personen von der Datei und speichere sie in einer Liste 2. Lese Zugangsdaten von Tastatur 3. Suche Person in gespeicherter Liste ( das ist der Zweck der Liste) 4. Vergleiche Passwort 5. Zeige Daten an. as war's schon. Zitieren
Klotzkopp Geschrieben 22. Januar 2009 Geschrieben 22. Januar 2009 also ich weiß nich irgendwie versteh ich da was falsch .. ich hab die liste erstellt mit vorname,nachname,kto,passwort .. und dann zeige ich immer mit dem next zeiger draufIch sehe in deinem Code keine Liste. Deine struct nutzer stellt nur einen einzigen Eintrag in deiner Liste dar. Erst wenn du tatsächlich mehrere davon anlegst (malloc) und aneinander hängst, kannst du von einer Liste sprechen. Davon ist in deinem Code aber nichts zu sehen. fprintf is doch nur zur ausgabe da oder?fprintf schreibt in eine Datei, wobei der Dateibegriff hier sehr weit gefasst ist. Du sollst aus der Datei lesen. Ganz ehrlich: Du hast massive Lücken bei den Grundlagen. Die musst du erst aufarbeiten. Ich kann dir garantieren, dass dein Programm nicht fertig wird, solange du ohne Sinn und Vestand daran herumprobierst. Du kannst dich nicht langsam durch Trial&Error an das richtige Programm heranarbeiten, weil ein richtiges Programm komplett anders aussehen kann als ein fast richtiges. Die strcmps zum Beispiel hast du wild über den Code verteilt, offenbar nach dem Prinzip "viel hilft viel". Aber so wird das nichts. Beim Programmieren musst du wissen, was du tust. 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.