Datei auslesen funktioniert nicht...

paggy

Grünschnabel
Hallo alle zusammen,

ich weiß, solche Fragen kamen schon öfter, aber ich habe jetzt 3h lang hier gesucht um rumprobiert, aber bin immer noch nicht auf die Lösung gekommen.

Ich habe eine Textdatei die folgendermaßen aussieht:

b 10 10 110 10
b 10 10 10 110
s 30 20 10 5 false
p 50 100

hier ist mein c++ Programm:
Code:
#ifndef PARSER_H_
#define PARSER_H_

#include <string>

using namespace std;

class Parser
{
 public:
        Parser();
        
 private:
         string bX1,bY1,bX2,bY2, sX1,sX2,sY1,sY2, pX, pY; //int
         string sDestroyable, bDestroy; //bool
      
};
#endif /*PARSER_H_*/


Code:
#include "Parser.h"

#include <iostream>
#include <cstdio>
#include <fstream>


Parser::Parser()
{
      string i;
      
      ifstream input;
      input.open("level.txt", ios::in);
      while(!input.eof())
      {
         getline(input,i,'\t');
         cout<<i;
         while(i == "b")
         {
              getline(input,bX1,'\t');
              cout<<bX1;
              getline(input,bY1,'\t');
              cout<<bY1;
              getline(input,bX2,'\t');
              cout<<bX2;
              getline(input,bY2,'\t');
              cout<<bY1;
              getline(input,bDestroy,'\n');
              cout<<bY2;
              
              getline(input,i,'\t');
          }
          
          while(i == "s")
          {
              getline(input,sX1,'\t');
              getline(input,sY1,'\t');
              getline(input,sX2,'\t');
              getline(input,sY2,'\t');
              getline(input,sDestroyable,'\n');
              
              getline(input,i,'\t');
          }
          
          while(i == "p")
          {
             getline(input,pX,'\t');
             getline(input,pY,'\n');
          }     
      }
      input.close();             
}

Mein erstes Problem ist, dass ich mal couts dazwischen gemacht habe, aber auf der Konsole wird nur alles bis b ende ausgegeben, das s macht er auch noch aber danach hört er auf, also funktioniert irgendwas nicht richtig...

Desweiteren will ich die Werte die getline einliest, nacher in einem int bzw bool haben, dafür gibt es ja irgendeine Funktion mit der ich das umwandeln kann?

Hat jemand eine Idee, wie ich das korrigieren kann?
 
Zuletzt bearbeitet:
Noch ein Hinweis zu deinem Code:
Du kannst anstatt des ifndef, define, endif auch einfach in die erste Zeile
#pragma once
schreiben, denn soviel ich weiß, ist das nur das selbe, aber das #pragma once ist wesentlich unkomplizierter und kürzer.
#pragma once gibt dem Compiler die Anweisung, den Code in dieser Datei nur einmal zu verarbeiten.
 
Zurück