Fehlerhafte Werte beim einlesen von Datei
-
Hi Leute,
Ich hab ein Programm geschrieben, dass soll mir aus einer Datei Grundbucheinträge auslesen. Leider liest es mir nur 1 mal einen richtigen Wert in die Variable 'gemarkung' ein, danach nicht mehr.
hier die Datei: http://www.fbi.h-da.de/fileadmin/personal/j.arz/PG/Katasteramt.txt
und hier mein code:
#pragma once #include <string> #include <iostream> #include <fstream> #include <stdlib.h> #include "GrundstueckElement.h" #include "GrundstueckListe.h" using namespace std; void main (void) { string grundbuch, gemarkung, wirtschaftsart, gros, tmp; char lage[80]; double groesse; GrundstueckElement * gel[50]; for(int x=0; x<=49;x++) gel[x] = 0; int i = 0; ifstream quelle; quelle.open("Katasteramt.txt",ios::in); if (!quelle.good()) { cout << "FEHLER DATEI" << endl; exit(-1); } else { while((!(quelle.eof()))&& (i < 50)) { quelle >> gemarkung; if(gemarkung == "*****************************************") { quelle >> tmp >> tmp >> grundbuch; quelle.getline(lage,80); quelle.getline(lage,80); quelle.getline(lage,80); quelle.getline(lage,80); quelle.getline(lage,80); quelle.getline(lage,80); } else { quelle >> wirtschaftsart; quelle >> gros; gros.replace(gros.find(","),1,"."); groesse = atof(gros.c_str()); quelle.getline(lage,80); // gel[i] = new GrundstueckElement(grundbuch, gemarkung, wirtschaftsart, lage, groesse); // gel[i]->browse(); i++; quelle >> gemarkung; } } } quelle.close(); system("pause"); }
ich hab auch schonmal versucht nur mit getline zu arbeiten und ohne den >>-Operator aber da ging nochmehr schief.
Ich hoffe ihr könnt mir helfen.
-
int main()
Wieder der gleiche Professor?
Zweitens: Schau mal ob die Klammern {} sinnvoll gesetzt sind.
-
der fehler passiert ja wenn die zeile 37 zum zweiten mal ausgeführt wird.
dann schreibt er "@u;" in gemarkung und dann wird in jedem darauf folgendem schleifendurchlauf die variable gemarkung nicht mehr verändert. obwohl die zeile 37 bei jedem schleifendurchlauf ausgeführt werden muss.