Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » läft unter Windows aber nicht unter Linux

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 ] > 2 <
010
10.12.2003, 13:06 Uhr
~revolutz
Gast


Yo, sorry hab das mit den Tags noch gar nicht gesehen, daß man das selber machen kann.

Nee, noch nicht alle Klarheiten beseitigt. warums nu unter Linux nicht läuft weiß ich immer noch nicht.
Ich habs jetzt mit einer festen Zeilenanzahl gelöst. Das ist zwar nicht so schick, erfüllt aber im Moment seinen Zweck.

Grüße,

revolutz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
10.12.2003, 14:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Also,

was in diesem Thread wohl schon deutlich wurde: Du mußt irgendwie an die Anzahl der Zeilen kommen. Mit diesem size_t(...) geht es nicht. Ein Standardkonformer weg ist das hier:

C++:
#include <iostream>
#include <fstream>
#include <iterator>

int main()
{
        // Datei öffnen
        std::ifstream in("a.cpp");

        // Beim iterieren kein Leerzeichen überspringen
        in.unsetf(std::ios::skipws);

        // Anzahl der Zeilen zählen
        unsigned count = std::count(std::istream_iterator<char>(in), std::istream_iterator<char>(), '\n');

        // Kontrollausgabe
        std::cout<<"Die Datei hat "<<count<<" Newlines/Zeilen"<<std::endl;

        // An Anfang zurück, flag zurücksetzen
        in.seekg(0,std::ios::beg);
        in.setf(std::ios::skipws);

        // Nun steht in count die Anzahl der Zeilen, in ist die geöffnete Datei
        // und man kann loslegen mit dem einlesen

}


Da die Datei im textmode geöffnet ist, ist garantiert, daß die Zeilenumbrüche immer den Wert '\n' haben (dh die Mac oder Windows Zeilenumbrüche werden korrekt hieraus gemappt).
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
10.12.2003, 16:22 Uhr
(un)wissender
Niveauwart


Ach ja, was du mit new[] holst, solltest du mit delete [] löschen, und nicht mit delete.
Das mit den zwei Zählern habe ich nicht gesehen, sorry, bin halt kein Compiler, nenn sie besser anders.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
15.12.2003, 15:25 Uhr
~revolutz
Gast


Danke an alle helfenden Hände (bzw. Köpfe) !!!!!!!!!!!!!!!!!!!!!!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


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: