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:
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?
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: