Odczytanie pliku .txt i wypisanie na konsolę

0

Z poniższego kodu chodzi mi szczególnie o jedną linijkę

 cout << lista;

Wydawało mi się, że ta instrukcja doprowadzi do wypisania przynajmniej jednej linijki tego co jest w tym pliku, a tymczasem wypisuje to: 0x28fe18 <-- to mi wygląda jak adres jakiegoś obiektu.
Moje pytanie, dlaczego wypisał mi się adres (o ile to adres) ?
I do jakiego obiektu jest to adres ?

#include <iostream>
#include <fstream>
 
using namespace std;

int main(){
	
	ifstream lista;
	lista.open("pliki.txt");
	if(!lista){
		cout << "Plik nie zostal poprawnie otwarty";}
	cout << lista;
	
system("PAUSE");
return 0;
}
1
char ch;
while(lista.get(ch)) cout<<ch;
1
copy(
	istreambuf_iterator<char>(lista), 
	istreambuf_iterator<char>(), 
	ostreambuf_iterator<char>(cout)
);
1

to jest lepiej, ale nadal nie jest idealnie (zawsze dodaje znak końca linii na końcu nawet jeśli go nie ma):
http://ideone.com/vN3xXq

string line;
while (getline(lista, line)) {
    cout << line << endl;
}
0
	
while(getline(lista, nazwa_pliku)){
	cout << nazwa_pliku << endl;
} 

Tak udało mi się to rozwiązać ;]
Czyli dokładnie tak jak MarekR22

1 użytkowników online, w tym zalogowanych: 0, gości: 1