Odczytanie pliku .txt i wypisanie na konsolę

Odpowiedz Nowy wątek
2015-01-05 05:53
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;
}
edytowany 1x, ostatnio: markosz1, 2015-01-05 05:54
Nie używaj prefiksów/postfiksów w tytułach wątków - od podawania nazwy języka/technologii są tagi; - furious programming 2015-01-05 12:22

Pozostało 580 znaków

2015-01-05 06:04
0

Polecam: http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305

Pozostało 580 znaków

2015-01-05 10:07
1
char ch;
while(lista.get(ch)) cout<<ch;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2015-01-05 11:44
racja, wczoraj byłem nie ogarnięty ... - _13th_Dragon 2015-01-05 11:42
tak coś czułem że to zbyt proste żeby mogło działać :) BTW, ta druga wersja raczej nie zadziała przy plikach UTF-8. - vpiotr 2015-01-05 11:45
jeżeli konsola będzie w UTF-8 to czemu nie, poza tym zawsze można użyć: wchar_t - _13th_Dragon 2015-01-05 11:47
@_13th_Dragon: takie "przeczucie" - do sprawdzenia - vpiotr 2015-01-05 11:49
Owszem, bo jak dotychczas nie zdarzyło mi się kopiować plik w UTF8 do konsoli, a sprawdzać mi się nie chce, jeżeli sprawdzisz to daj znać. - _13th_Dragon 2015-01-05 11:52

Pozostało 580 znaków

2015-01-05 11:19
1
copy(
    istreambuf_iterator<char>(lista), 
    istreambuf_iterator<char>(), 
    ostreambuf_iterator<char>(cout)
);
edytowany 2x, ostatnio: spartanPAGE, 2015-01-05 11:33
@MarekR22 a karteczkę z przydziałem białych znaków pan ma? :P - spartanPAGE 2015-01-05 11:34
@MarekR22: ta wersja jest lepsza - powinna działać z UTF-8. - vpiotr 2015-01-05 11:47

Pozostało 580 znaków

2015-01-05 11:44

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;
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22, 2015-01-05 11:45

Pozostało 580 znaków

2015-01-05 23:04
0
 
while(getline(lista, nazwa_pliku)){
    cout << nazwa_pliku << endl;
} 

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

edytowany 1x, ostatnio: markosz1, 2015-01-05 23:06

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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