mehrfache Accounts vermeiden
-
Ich hab die Aufgabe das keine accounts doppelt vorkommen. bis jetzt habe ich nur "schueler.dat" geoefnet und den inhalt zu "chardatzuc" geschoben. in jeder reihe steht ein name. ich weiss jedoch nicht wie das prog erkennen kann wann die zeile zu ende ist. ich muesste die name ja trenne, damit ich vergleichen kann, ob sie identisch sind..
hoffe jemand kann mir helfen.
/* Aus der Datei personaldaten.dat werden Account, Klasse * und Passwort generiert.*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #define DATNAME "schueler.dat" struct Accounts { char acc[30]; int wieoft; struct Accounts *next; } *top,*p; void accountGenerieren (char zeile[100], char user[11], char kl[10]); void umlauteEntfernen (char zeile[100]); void passwordGenerieren (char pw[7]); void namenszusaetzeEntfernen (char zeile[100]); void mehrfacheAccountsVermeiden (char *acc); int main (void) { char z[100]; char account[30]; char klasse[10]; char password[7]; FILE *ein, *aus; ein=fopen ("schuelerdaten.dat","r"); aus=fopen ("schueler.dat","w"); top=NULL; p=NULL; while(fgets(z,100,ein)) { namenszusaetzeEntfernen(z); umlauteEntfernen(z); accountGenerieren(z,account,klasse); mehrfacheAccountsVermeiden(account); passwordGenerieren(password); fprintf(aus,"%s,%s,%s\n",account,password,klasse); } fclose(ein); fclose(aus); return 0; } void umlauteEntfernen (char zeile[100]) { } void accountGenerieren (char zeile[100], char user[30], char kl[10]) { } void passwordGenerieren(char pw[7]) { } void namenszusaetzeEntfernen (char zeile[100]) { } void mehrfacheAccountsVermeiden (char *acc) { char chardatzuc; char *charSchuelerPtr; charSchuelerPtr=&chardatzuc; fileptr=fopen("schueler.dat","r"); size_t fread(void *charSchuelerPtr,FILE *fileptr); }
-
Kleiner Tipp:
Les dir zuerst die komplette schueler.dat in den Arbeitsspeicher ein. Mach deine Vergleiche, Änderungen, ... mit den Daten im Arbeitsspeicher und schreib am Schluss die schueler.dat neu anhand der Daten im Arbeitsspeicher.