Ich habe von unserem Prof. den folgenden Quelltext erhalten:
Meine Fragen dazu sind:
1. Kann man die Prozeduren problemlos im main() nutzen, oder ist der Quelltext unvollständig.
2. Welche Parameter muss ich den letzten beiden auskommentierten Funktionen übergeben, damit sie funktionieren? Ich hab schon alles ausprobiert was mir eingefallen ist.
Kann mir bitte jemand helfen?
Code:
#include <stdio.h> //header file für Ein-/Augabe
#include <stdlib.h> //header file für Standartbibliotheken
#include <string.h> //header file für Zeichenfolgen
struct person
{
char *name;
struct person *nachfolger;
};
typedef struct person person;
person * person_anlegen(char * data)
{
person *tmp=(person *)malloc(sizeof(person));
int laenge = strlen(data);
tmp->name =(char *)malloc(laenge+1);
strcpy(tmp->name, data);
tmp->nachfolger = NULL;
return tmp;
}
void element_einhaengen(person* element, person **listenlink)
{
element->nachfolger = *listenlink;
*listenlink = element;
}
void ausgabe(person *liste)
{
person *zeiger = liste;
while(zeiger != NULL)
{
printf("Name: %s ,\n", zeiger->name);
zeiger=zeiger->nachfolger;
}
printf("Ende \n");
}
void ausgabe_file(person *liste, char * filename)
{
FILE * file;
person *zeiger = liste;
file = fopen(filename, "w+");
if(file != NULL)
{
while(zeiger != NULL)
{
fprintf(file, "Name: %s\n", zeiger->name);
fprintf(file, "#\n");
zeiger=zeiger->nachfolger;
}
fprintf(file,"## \n");
}
fclose(file);
}
void einlesen_file(person **listenlink, char * filename)
{
FILE * file;
char wort[100];
file = fopen(filename, "r+");
if(file != NULL)
{
while(fscanf(file, "%s", wort) && strcmp(wort, "##"))
{
if(strcmp(wort,"#"))
element_einhaengen(person_anlegen(wort),listenlink);
}
}
fclose(file);
}
void leeren_file(person **listenlink)
{
person *zeiger = *listenlink;
while(zeiger != NULL)
{
*listenlink = (*listenlink)->nachfolger;
free(zeiger->name);
free(zeiger);
zeiger = *listenlink;
}
*listenlink = NULL;
}
main()
{
person *anfang = NULL;
char wort[20];
printf("Bitte Namen eingeben:");
scanf("%20",wort);
wort[19]=0;
element_einhaengen(person_anlegen(wort),&anfang);
//ausgabe();
//ausgabe_file(,"nutzer.txt");
}
Meine Fragen dazu sind:
1. Kann man die Prozeduren problemlos im main() nutzen, oder ist der Quelltext unvollständig.
2. Welche Parameter muss ich den letzten beiden auskommentierten Funktionen übergeben, damit sie funktionieren? Ich hab schon alles ausprobiert was mir eingefallen ist.
Kann mir bitte jemand helfen?