Zum Inhalt springen

Hilfe! Structs in C


Koenig13

Empfohlene Beiträge

Ich habe von unserem Prof. den folgenden Quelltext erhalten:

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Kann man die Prozeduren problemlos im main() nutzen, oder ist der Quelltext unvollständig.

Hab ich gemacht:

g++ test.cpp  

=> kein Fehler => Syntaktisch richtig, also nutzbar

Ich hab schon alles ausprobiert was mir eingefallen ist.

Ja mein Prof sagte immer das man lieber Programmieren lernen sollte anstelle alles auszuprobieren.

Ich habe von unserem Prof. den folgenden Quelltext erhalten:

Aus deiner Fragestellung entnehme ich das du entweder so wenig Ahnung von C hast das du noch nicht mal ne ordentliche Frage dazu formolieren kannst, oder aber das du zu faul dazu bist.

Im ersten Fall würde ich dir raten, kein Fach im Studium zu belegen das mit Programmieren zu tun hat, weil in denen muss man immer Syntax lernen. (Ich hoffe du bist kein Informatiker)

im zweiten Falle würd ich sagen Pech gahabt.

Nur so aus interesse und die Frage mein ich ernst, was Studiierst du eigentlich? (Bachelor, Master)?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die genaue Frage lautet: Welchen Wert muss ich Ausgabe() übergeben, damit ich die aufgenommen Liste ausgeben kann. Das ist das einzige was ich nicht erfassen kann. Ich kann programmieren, sonst wär ich nicht im letzten Semester durch die Praktika gekommen. Nur haben wir uns einfach zu wenig mit Zeigern und Structs befasst.

Bearbeitet von Koenig13
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also bis ich die Aufgabe gleich in 2 Foren eingestellt hättte

(ähm auch mit dem gleichen Text), da hätt ichs dann schon selber nachgeschlagen.

Hilfe! Structs in C - Forum de Luxx

Ich bin bei sowas einfach nur Sprachlos,

was mich immer so entsetzt ist diese wie soll ich sagen, faulheit.

Ein Studium sollte zu selbstständigen und wisenschaftlichen Arbeiten befähigen. Gut du hast das Forum vermutlich selbst bedient, das muss man dir lassen, ich bin entsetzt.

Ach ja die rechtschreibfehler und tippfehler dürft ihr behalten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

mir kommen die Funktionen in dem Quelltext inzwischen sehr bekannt vor. Es scheint um das selbe Log-In Problem mit verketteter Liste zu gehen, dass wir schon an mehreren anderen Stellen hatten. Dazu passt, dass dort auch WirtschaftsInfo studiert wurde, nd die auch keine "Ahnung" vo Listen und Strukturen hatten.

Ich kann programmieren, sonst wär ich nicht im letzten Semester durch die Praktika gekommen. Nur haben wir uns einfach zu wenig mit Zeigern und Structs befasst.

Was soll denn bitte das Programm machen?

Bis jetzt liest es einen Text ein, speichert diesen im Speicher und gibt eine Datei aus. Beides hat nichts miteinander zu tun. Der Speicher wird nicht mal wieder freigegeben.

Wie schon jemand schrieb, da fehlen Grundlagen, denke ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...