datei öffnen

cmk

Benutzertitel:
Beiträge
209
also ich komm ja aus der php welt ;)
da würde ich ne datei folgendermasen in ein array laden uns ausgeben:

1. txt datei öffnen
2. feststellen wie viele zeilen drin sind
3. mit foreach schleife alles in array laden

wie geht das in c++?

int main()
{
fstream datei( "test.txt", ios::in );
string buffer;
getline( datei, buffer );
cout << buffer;
}

das will net so recht ;)
 

mapiox

Tripel-As
Beiträge
176
Code:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main()
{
	//öffnen
	ifstream file("test.txt");

	// vector
	vector<string> vec;

	// gelesene Zeilen in vector einfügen
	for (string line; getline(file, line); )
        vec.push_back(line);


	// schließen
	file.close();

	// ausgeben
	for(int i=0; i<vec.size(); ++i)
		cout << vec[i] << endl;
}
 

cmk

Benutzertitel:
Beiträge
209
geht irgenwie nicht ;( lässt sich compilieren aber den inhalt bekomm ich ent angezeigt
 

mapiox

Tripel-As
Beiträge
176
funktioniert bei mir beides
Code:
#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
    fstream datei( "test.txt", ios::in );
    string buffer;
    getline( datei, buffer );
    cout << buffer;
}
compillieren:
Code:
g++ app_name.cpp -o app_name
ausführen:
Code:
./app_name

versteh nicht warum das nicht gehen soll ?(
 

rup

Haudegen
Beiträge
627
Kann es sein das die erste Zeile deiner test.txt eine Leerzeile ist? Dein Prog. gibt naemlich nur die erste Zeile aus.
 

rup

Haudegen
Beiträge
627
#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
fstream datei( "test.txt", ios::in );
string buffer;
while(getline( datei, buffer ))
cout << buffer << endl;
exit(0);
}
 

cmk

Benutzertitel:
Beiträge
209
danke werd mal wenn ich zuhause bin alles durchprobieren

das letzte beispiel von rup is für mich irgendwie viel leichter zu verstehen ;) hoffentlich funkt es auch aber schonmal danke
 

rup

Haudegen
Beiträge
627
Was verstehst du unter kompletten Projekt?
vieleicht als Shellskript? Dateien erstellen, kompilieren und ausfuehren ;) Einfach den Code unten als Projekt.sh speichern und mit "sh Projekt.sh" aufrufen.
Nein im Ernst, also der Code sollte auf alle Faelle funzen. Kann es eventuell sein das es irgendwelche Probleme mit DOS-Zeilenumbruch gibt?

Gruss Rupert

_____________________________________
#!/bin/bash

cat > source.cpp << EOF
#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
fstream datei( "test.txt", ios::in );
string buffer;
while(getline( datei, buffer ))
cout << buffer << endl;
exit(0);
}
EOF

cat > test.txt << EOF
das ist ein test
das ist der zweite Test
die dritte Zeile
EOF

g++ source.cpp && ./a.out || echo "Achtung Fehler"
_____________________________________
 
Zuletzt bearbeitet:

Ähnliche Themen

Problem mit Texteingabe

in_array Problem

Problem mit std::ifstream

Richtige Syntax benötigt!

String-Return

Oben