Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.09.2009, 17:34

Datei zeilenweise einlesen

hi Leute,

ich möchte in einer c++ konsolenanwendung eine Datei dessen Namen man eingeben kann zeilenweise einlesen und jede zeile in einem Element eines int Arrys speichern. ( Datei: 26 zeilen, Nur Zahlen)

könntet ihr mir da helfen :?:

mfg Schwane

2

20.09.2009, 17:41

Schau dir dazu doch einfach mal ifstream an.

Kannst damit einfach Dateien dann mit getline() zeilenweise auslesen.

3

20.09.2009, 17:47

hab ich schon, kommen aber nur fehler bei raus... :(

xxendlessxx

Treue Seele

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

4

20.09.2009, 17:48

ein bisschen quellcode wäre gut. und was für fehler kommen den bei dir?

5

20.09.2009, 18:12

es scheitert schon beim öffnen der datei:

C-/C++-Quelltext

1
2
3
4
5
6
7
ifstream CDatei;
    CDatei.open( "test.txt");
    if( CDatei.is_open() != true)
    {
        cout <<"Fehler beim öffnen der Datei! \n";
        system("PAUSE");
    }


da kommt "Fehler beim öffnen de Datei".

außerdem weis ich nicht wie ich den dateinamen abspeichern muss damit die funktion ihn akzeptiert.

6

20.09.2009, 18:15

Sicher das die Datei im gleichen Ordner steckt wie die exe?

xxendlessxx

Treue Seele

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

7

20.09.2009, 18:15

http://www.cplusplus.com/reference/iostream/ifstream/open/
schau dir den link mal an. das sollte alles erklären denk ich.

8

20.09.2009, 18:20

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Einen neuen Stream erstellen zum einlesen der Datei
std::ifstream is; 
    
// Die Datei öffnen
is.open(mFileName.c_str(), std::ios::binary);

std::string data = "";
if(is.is_open())
{
    // Hier werden die Daten zwischen gespeichert
    std::string buffer;
    
    // Die ganze Datei einlesen
    while(std::getline(is, buffer))
           data += buffer;
}

is.close();


So machen wir das bei uns in der Fileklasse.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

20.09.2009, 18:41

Zitat von »"Zero"«


So machen wir das bei uns in der Fileklasse.


Echt? Voll umständlich:

C-/C++-Quelltext

1
2
3
4
std::ifstream stream( "test.txt" );
std::string buffer( 
    (std::istreambuf_iterator<char>( stream )),
    std::istreambuf_iterator<char>() );


Aber die Frage war ja eigentlich eine ganz andere. @Schwane: Überprüf mal, dass der Pfad zur Datei korrekt ist. Danach kannst du dann mit den Stream-Operatoren arbeiten.

10

20.09.2009, 19:16

Soweit ich weiß ist nicht unbedingt alles was wahr ist identisch mit true.
Lass das einfach weg, z.B. if(!File.open())
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige