Aus Datei lesen und vergleichen!
-
Hallo zusammen!
Ich möchte bestimmte Benutzernamen und Passwörter in eine Datei schreiben,d.h die user melden sich an und die names und passes werden dann gesaved!Aber nun will ich die Benutzernamen und die Passwörter wieder aufrufen und mit der Eingabe des einloggenden users vergleichen!
Bin mit fseek noch nicht sonderlich weiter gekommen weil ichs einfach nicht fertig bringe die datei nach einem bestimmten Muster zu durchsuchen und dann noch die Passwörter zuzuordnen *puh*
Wer kann mir helfen???
bye bye
-
du schreibst ja die Datei in einer bestimmten Form auf (zB. Username:Passwort ), dann liest du das einfach ein und hälst die Daten im Speicher in einem Vector und dann kannst du ja einfach den Vector nach Username durchsuchen. In der Datei rumzusuchen sollte sehr ineffizient sein, da du dann die Datei bei jedem Login Versuch neu einlesen musst und Festplatten I/O recht langsam ist
-
Sorry , aber ich weiß jetzt echt nicht wie du das meinst und erst recht nicht wie ich das in C schreiben soll
.. Kannst du mir da vielleicht n bisschen code schreiben??
bye
-
Was ist daran schwer?
Du hast eine Datei, die so aussieht
username0:passwort0 username1:passwort1 ... usernamen:passwortn
du liest die einfach ein und mit strtok kannst du wunderbar Zeile für Zeile in Username und Passwort teilen. Das tust du dann in eine Struktur
struct user { char *username; char *passwort; };
die zB. so aussieht. Davon legst du ein Array an, in dem alle User gespeichert werden und wenn sich nun ein User einlogt, dann durchsuchst du das Array nach der Struktur, die den usernamen enthält und vergleichst das Passwort.
Ich verschieb das mal in das ISO C Forum, da es kein Unix spezifisches Problem ist
-
Sorry, aber mir ist das immer noch nicht ganz klar!
Wie schreibe ich denn die Daten in die Datei?(Bin noch ziemlicher Anfänger , sry) und wie lese ich die Daten aus der Datei denn in ein Array ein???
ok.. der Vergleich wird wohl irgendwie mit if gehen aber sonst bin ich da voll planlos...
plz help
-
Hier die Funktionen die du für die rbeit brauchst, schlag in der Hilfe deines Compilers nach die haben dazu mesitens Besipielprogramme die für diese einfachen Schen weiterhelfen.
Öffnen der Datei mit fopen
schreiben mit fprintf
schließen mit fcloselesen mit fgets
Noch ein guter Tip, besorg dir ein Gutes Buch oder Tutorial und arbeit es durch
Tutorials findest du hier im Forum, war bis jetzt noch kein schlechtes dabei
Viel Spaß
Wenn du dann noch Fragen hast, hier wird dir geholfen :p
-
ich weiß wie ich daten in die Datei schreibe aber ich hab kein Plan wie ich die einzelnen usernames und passwörter in ein Array einlesen kann und dann noch vergleichen!!
Kann mir den niemand dazu ein code-beispiel geben sonst weiß ich nicht wie ich des anstellen soll!??
bye
-
Naja, das Problem ist, dass wenn dir jetzt jemand diesen fertigen Code präsentieren würde, du es auch nie selber kannst. Die Stichworte, die gegeben wurden, sind schon sehr hilfreich.
Ich würde mir an deiner Stelle wirklich einfach mal einige Tutorials durcharbeiten, das bringt sehr viel.
-
Die Code Besipiele findest dur in der Hilfe von deinem Compiler
-
Hi.. habe jetzt folgenden Code:
--------
int main (){
char *username;
char *passwort;
FILE *datei;
char *speicher;printf("username : ");
scanf("%s",&username);printf("passwort : ");
scanf("%s",&passwort);datei = fopen("dat","w");
fprintf(datei,"%s:",&username);
fprintf(datei,"%s",&passwort);fclose(datei);
datei = fopen("dat","r");
fgets(&speicher,sizeof(speicher),datei);
printf("%s",&speicher);
}
--------
aber irgendwie funkt das überhaupt nicht so vie ich das will..wer kann den Code etwas verbessern?
bye bye
-
Da sind essentielle Fehler drin
Du erzeugst hier vier pointer für dir du keine Memory resevierst
schau mal unter malloc,callocoder für den Anfang etwas einfacher
char username[100+1];
char passwort[100+1]; ;
FILE datei[100+1]; ;
char speicher[100+1]; ;Damit erzeugst du Strings die 100 Zeichen speichern können, das +1 ist eine Marotte von mir um den üblichen Fehler zu vermeiden das für die shließende Null kein Platz mehr da ist
Da du jetz strings definiert hast heißt das
scanf("%s",&username);
jetzt
scanf("%s",username);deine fprintf sind auch falsch sie müssen heißen
fprintf(datei,"%s:",username);
Aber jetzt noch eine große Bitte: Es gibt viele gute Bücher und Tutorials die du lesen solltest bevor du anfängst zu codieren