Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » txt datei auslesen ... ZEILENUMBRUCH erkennen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.12.2010, 12:55 Uhr
mentizm



Hallo,

ich hänge an einer stelle in meinem code für die es wahrscheinlich eine einfache erklärung gibt aber ich komme nicht drauf ... die C++ Reference, Google, sämtliche Foren haben mich nicht weiter gebracht.

Mein Problem:

Ich lese eine X.txt datei ein


C++:
void DataSet::getDataSetToVector(char dataSetDelimiter)
{
    ifstream datasetFile;
    datasetFile.open ("./src/dataFiles/iris.txt", ifstream::in);

    if (datasetFile.is_open())
    {
        while (datasetFile.good())
        {
            char a = (char) datasetFile.get(); <-- HIER IST MEIN PROBLEM
            cout << " [geta: " << a << "]";
        }
        datasetFile.close();
    }
    else
    {
        cout << "ERROR could not open file.";
    }
}



ich will die werte zeilenweise in einen vector einlesen... die txt file sieht so aus

5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
...
...

das speichern in den vector stellt kein problem da nur DAS ERKENNEN DES ZEILEN UMBRUCHS! wenn ich mit datasetFile.getline() an die sache rangehe liest er nur bis "/n" und bricht dann ab... ich frage mich nur wie komme ich an die nächste LINE(Zeile). es muss doch die möglichkeit eines .getNEXTline() geben?!

danke!

-------

cpp-Tags eingefügt

Dieser Post wurde am 09.12.2010 um 20:47 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2010, 12:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja jeder aufruf von getline liefert dir eine weitere Zeile.

also so:


C++:
while (datasetFile.good())
{
  string line;
  getline(datasetFile, line);

  cout << " [getline: " << line << "]";
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2010, 13:01 Uhr
mentizm



DU BIST ES! ... danke. es läuft.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.12.2010, 12:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


bzw eigentlich sollte man besser


C++:
string line;
while (getline(datasetFile, line))
{
// ...
}



verwenden, da du sonst evtl die letzte zeile duplizierst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: