C Code Erklärung
Geizhals » Forum » Programmierung » C Code Erklärung (60 Beiträge, 1017 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
C Code Erklärung
15.11.2005, 21:42:19
Und zwar geht es um ein Adressbuch:

#include
#include
#include
#include
#include
struct abe{  
    char* Vorname;
    char* Nachname;
/*
    char* Telefonnummer;
    char* Adresse;
    char* Postleitzahl;
*/
    struct abe* Next_abe;
    };
  
struct abe* Liste;

void Eingabe(void);
void Speichern(void);
void Laden(void);

void Speichern(void)
{
struct abe*Laufzeiger;
FILE *fp;

fp=fopen("Adresse.txt", "w");

Laufzeiger=Liste;
while(Laufzeiger)
{
fprintf(fp,"%s\n%s\n" ,Laufzeiger->Vorname,Laufzeiger->Nachname);
  Laufzeiger=Laufzeiger->Next_abe;
  }
  fclose(fp);
}

void Laden(void)
{
struct abe*Laufzeiger;
FILE *fp;
  struct abe* PP;
  struct abe** Suchzeiger;
  char hilf[1000];
  char Zeile[2000];

if(Liste)
{
printf("Funktion verboten!\n");
return;
}
fp=fopen("Adresse.txt", "r");
if (!fp)
{
   perror("Adresse.txt");
   return;
   }

while(fgets(Zeile,sizeof(Zeile),fp))
{
    PP=(struct abe*)malloc(sizeof(struct abe));

    sscanf(Zeile,"%s" , hilf);
    PP->Vorname=(char *)malloc(strlen(hilf)+1);
    strcpy(PP->Vorname, hilf);

fgets(Zeile,sizeof(Zeile),fp);
    sscanf(Zeile,"%s" , hilf);
    PP->Nachname=(char *)malloc(strlen(hilf)+1);
    strcpy(PP->Nachname, hilf);

    PP->Next_abe=NULL;
    
    if(Liste==NULL)
     Liste=PP;
   else
   *Suchzeiger=PP;
   Suchzeiger=&(PP->Next_abe);
}
fclose(fp);
}



void Eingabe(void)
{
    struct abe* PP;
    char hilf[1000];
    struct abe** Suchzeiger;
    struct abe *hilfzeiger;
    
    PP=(struct abe*)malloc(sizeof(struct abe));
    printf("Bitte Nachname eingeben ");
    scanf("%s" , hilf);
    PP->Nachname=(char *)malloc(strlen(hilf)+1);
    strcpy(PP->Nachname, hilf);
    
    printf("Bitte Vorname eingeben ");
    scanf("%s" , hilf);
    PP->Vorname=(char *)malloc(strlen(hilf)+1);
    strcpy(PP->Vorname, hilf);
    PP->Next_abe=NULL;
    
    if(Liste==NULL)
    {
     Liste=PP;
     return;
    }
    Suchzeiger=&Liste;
    while(*Suchzeiger)
    {
     hilfzeiger = *Suchzeiger;
      if(strcmp( PP->Nachname,hilfzeiger->Nachname)<0 PP/>Next_abe=*Suchzeiger;
     *Suchzeiger=PP;
return;
     }
     Suchzeiger=&(hilfzeiger->Next_abe);
   }
   *Suchzeiger=PP;
}
void Listenausgabe(void);
void Listenausgabe(void)
{
struct abe*Laufzeiger;
Laufzeiger=Liste;
while(Laufzeiger)
{
printf("%s %s\n" ,Laufzeiger->Vorname,Laufzeiger->Nachname);
  Laufzeiger=Laufzeiger->Next_abe;
  }
}






int main(int argc, char *argv[])
{
int key;
while(1)
{
printf("e:Eingabe, a:Ausgabe s:Speichern l:Laden esc=Ende");
key=getche();
  if(key=='e')
   Eingabe();
  if(key=='a')
   Listenausgabe();
if(key==27)
  break;
if(key=='s')
   Speichern();
if(key=='l')
   Laden();
  
  
}
  system("PAUSE");
  return 0;
}



Mein Fragen:
1. Schaut die Ausgabe nicht schön aus. Wie kann ich das ändern?
2. Wie geht das für Adresse,Postleitzahl und Telefonnummer?

____________________________________________________________________________
Im Verlauf einer Online-Diskussion nähert sich die Wahrscheinlichkeit eines Vergleichs, in dem die Nazis oder Hitler einbezogen sind, Eins an.
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: C Code Erklärung  (Somnatic am 15.11.2005, 21:46:24)
...  Re(3): C Code Erklärung  (Somnatic am 15.11.2005, 21:49:21)
....  Re(4): C Code Erklärung  (Collectors_edition am 15.11.2005, 21:50:50)
.....  Re(5): C Code Erklärung  (Somnatic am 15.11.2005, 21:54:35)
......  Re(6): C Code Erklärung  (Collectors_edition am 15.11.2005, 21:56:00)
.......  Re(7): C Code Erklärung  (Somnatic am 15.11.2005, 22:01:25)
........  Re(8): C Code Erklärung  (Collectors_edition am 15.11.2005, 22:03:30)
.........  Re(9): C Code Erklärung  (Somnatic am 15.11.2005, 22:07:30)
..........  Re(10): C Code Erklärung  (Collectors_edition am 15.11.2005, 22:09:00)
...........  Re(11): C Code Erklärung  (Somnatic am 15.11.2005, 22:13:32)
...........  Re(11): C Code Erklärung  (Somnatic am 15.11.2005, 22:23:40)
............  Re(12): C Code Erklärung  (Collectors_edition am 15.11.2005, 22:25:00)
..  Re(2): C Code Erklärung  (Collectors_edition am 15.11.2005, 21:47:23)
...............  Re(14): Ohne dich deprimieren zu wollen...  (kaukus am 15.11.2005, 23:09:19)
...  Re(2): Ohne dich deprimieren zu wollen...  (MAX M am 16.11.2005, 00:20:38)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung