Seite 1 von 1

Listen verketten und vergleichen mit Daten aus File!

Verfasst: Fr Jan 16, 2009 9:49 pm
von zoror
He ich habe das Problem, dass ich mir die Liste erstellt habe aber nicht mehr weiter komm! Muss eine nutzer.txt benutzen wo der Loginname, Passwort und Kontonummer drin sind! Die werden in eine liste gespeichert und müssen dann verglichen werden! Danach muss er einloggen!

Code: Alles auswählen

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct person
{
  char *login;
  char *passwort;
  char *kontonummer;
  struct person *nextzeiger;
};

char eingabe (char *name, char **string)
{
  int n;

  n = strlen(name);
  *string = (char *)malloc ((n+1)*sizeof (char));
  strcpy (*string, name);
}

int main() 
{
  struct person *nextzeiger=NULL;
  struct person *anfangzeiger=NULL;
  char name[100];

  anfangzeiger = malloc (sizeof (struct person));
	
  printf("Bitte geben sie ihren Loginnamen ein:");
  scanf("%s", name);
  eingabe (name,&anfangzeiger->login);

  printf("Bitte geben sie ihr Passwort ein:");
  scanf("%s", name);
  eingabe (name,&anfangzeiger->passwort);

  printf("Bitte geben sie ihre Kontonummer ein:");
  scanf("%s", name);
  eingabe (name,&anfangzeiger->kontonummer);

  printf( "\n\nDein Loginname ist : %s \n\passwort: %s\n\Kontonummer: %s\n\",
          anfangzeiger->login,
          anfangzeiger->passwort,
          anfangzeiger->kontonummer );    //Zum testen

  getch();				
  free(anfangzeiger->login);
  free(anfangzeiger);
}
/* edit by Kerli: Code formatiert und Codetags eingefügt. */

Re: Listen verketten und vergleichen mit Daten aus File!

Verfasst: Fr Jan 16, 2009 10:21 pm
von cloidnerux
Hallo und wilkommen im Forum.
Also, du willst also eine Funktion implementieren, die Überprüft ob das eingegebne Pass wort und benutzenamen &co. einem Eintrag in der Nutzer.txt entsprechen?
Dazu musst du einfach in einer Schleife ALLE elemente durchgehen, Prüfen ob die Eingegebenen Daten einem eintrag entsprechen, wenn sie dies Tun, dann eine VAriable auf True sezten und die Schleife mit break abbrechen.

Code: Alles auswählen

int eintrag_vorhanden=0;
struct person *personenpointer=ERSTES_ELEMENT_DER_LISTE;
while(!eintrag_vorhanden)      //Bestimmte Abbruchbedinung
{
   if(*personenpointer->login==Login...)eintrag_vorhanden=1;
   else personenpointer=personenpointer->nextzeiger;
}
Ist Warscheinlich nihct das BAeste, aber eine Möglichkeit.

Re: Listen verketten und vergleichen mit Daten aus File!

Verfasst: Fr Jan 16, 2009 10:37 pm
von zoror
Ich werde es morgen mal so testen! Muss eine Kontoführungssoftware in C schreiben.

Re: Listen verketten und vergleichen mit Daten aus File!

Verfasst: Sa Jan 17, 2009 12:04 am
von Kerli
Hallo zoror, willkommen im Forum!

So wie ich dich verstehe liegt das größte Problem wohl darin die Einträge aus der Textdatei in eine Liste zu bekommen.

Also du must die Datei einfach mit fopen öffnen. Falls du das noch nicht kennst findest du zum Beipiel in unserem Wiki einen Beitrag dazu.

Danach kannst du zum Beispiel mit fgets die Datei Zeilenweise einlesen. Eine Dokumentation dazu findest du zum Beispiel hier. Jetzt musst du dann nur mehr jede Zeile auswerten. Wie du das genau machen musst kann ich nicht sagen, da ich nicht weiß wie deine Datei aufgebaut ist. Aber du wirst wahrscheinlich nach bestimmten Trennzeichen suchen müssen und an diesen Stellen dann auftrennen und in die entsprechenden Variablen deiner Datenstrukturen kopieren. Dafür findest du auch in der string.h einige nützliche Funktionen.

Achja, und versuch doch conio.h zu vermeiden. Die gibt es nämlich nur unter Windows...

@cloidnerux:
Bitte versuch doch deine Rechtschreib- und Tippfehler wieder etwas einzuschränken. So etwas muss doch wirklich nicht sein:
cloidnerux hat geschrieben:Ist Warscheinlich nihct das BAeste,[...]

Re: Listen verketten und vergleichen mit Daten aus File!

Verfasst: Sa Jan 17, 2009 4:04 pm
von zoror
Ja, danke! Bin schon etwas weiter gekommen!