fehler mit strcpy beim Auslesen aus txt Dateien
-
Hey,
danke für die weiteren Vorschläge! Ich werde mich damit näher befassen, doch im Moment komme ich noch nicht dazu.
grüße
Stockhausen
-
Hallo Zusammen,
ich habe mich auch mal an der Aufgabe versucht, doch leider funktioniert sie noch nicht ganz. Ich habe mich darum bemüht, die Ratschläge zu befolgen, aber ich bin auch nur eine Anfängerin...
Mir ist zwar bewusst, dass der Beitrag schon was länger her ist, aber ich dachte, ich versuche mal mein Glück
#include <iostream> using namespace std; #include <string> #include <stdlib.h> #include <fstream> struct personen { struct personen *naechster; std::string name; int ordnungsnummer; std::string identifikation; } ; enum zustand {imON,imNamen,imID}; struct personen *ladedaten(ifstream &datei); struct personen *ladeperson(ifstream &datei); int main() { struct personen *wurzel=NULL; ifstream datei; datei.open("personen.txt"); wurzel=ladedaten(datei); while(wurzel!=NULL) { cout << wurzel->name << " besitzt die " << wurzel->ordnungsnummer << "mit der Identifikation " << wurzel->identifikation << "." << endl; wurzel=wurzel->naechster; } } struct personen *ladedaten( ifstream &datei) { struct personen *wurzel=NULL, *jetzt, *neu; while(!datei.eof()) { neu=ladeperson(datei); if (neu!=NULL) { if (wurzel==NULL) wurzel=neu; else jetzt->naechster=neu; jetzt=neu; } } return wurzel; } struct personen *ladeperson( ifstream &datei) { struct personen *fest; char puffer[100],zeichen; int zaehler; enum zustand zustand; fest=new struct personen; fest->naechster=NULL; zustand=imON; zaehler=0; for (;;) { datei.get(zeichen); if (datei.eof()) break; switch(zeichen) { case '"': puffer[zaehler]='\0'; zaehler=0; fest->ordnungsnummer=atoi(puffer); zustand=imNamen; break; case '(': if (zustand!=imON) { puffer[zaehler]='\0'; zaehler=0; fest->name = puffer; zustand=imID; } break; case ')': if (zustand!=imON) { puffer[zaehler]='\0'; zaehler=0; fest->identifikation=puffer; } puffer[zaehler]='\0'; zaehler=0; break; default: puffer[zaehler]=zeichen; zaehler++; break; } } }
-
"funktioniert nicht so ganz" ist keine brauchbare Fehlerbeschreibung.
-

Die Fehlermeldung lautet: "no return statement in function returning non-void"
Das Programm wird zwar durchlaufen, allerdings wird nichts ausgegeben.
-
... Hast du die Fehlermeldung mal VERSUCHT zu verstehen?
-
Ich sehe gerade, dass ich das Ende vergessen habe.
Müsste folgendes sein:struct beziehungen *sucheid(struct beziehungen *wurzel, char *bezeichnung) { while (wurzel != NULL) { if (!strcmp(wurzel->pate, bezeichnung)) return wurzel; wurzel = wurzel->naechster; } return NULL; }
-
Allerdings erhalte ich die Fehlermeldung:
invalid conversion from 'int' to 'const char*'
-
C.plusplus schrieb:
Allerdings erhalte ich die Fehlermeldung:
invalid conversion from 'int' to 'const char*'Wo erhältst du diese?
Damit das nicht so weiter geht, dass wir dir ständig alles aus der Nase ziehen müssen, lies mal dies durch:
https://www.c-plusplus.net/forum/200753
https://www.c-plusplus.net/forum/304133
http://www.tty1.net/smart-questions_de.html
-
if (!strcmp(wurzel->pate, bezeichnung)) return wurzel;Ich sehe in deinem code keinen pate.
Außerdem kenn ich nur einen Paten und der duldet keinen Widerspruch. Nicht einmal von einem Compiler.EDIT:
Du postest hier willkürlich ausgeschnittene/zusammengebastelte Codefragmente aber unglücklicherweise sind 99% der Forenmitglieder keine Hellseher.