Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z odczytaniem zawartości pliku <fstream>

Ostatnio zmodyfikowano 2013-11-24 18:47
Autor Wiadomość
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 18:00:02
kod po poprawieniu:
C/C++
std::cout << "Plik zostal otwarty pomyslnie!\nJego zawartosc zostala zaladowana ponizej:\n" << std::endl;
char bufor[ 1024 ];
plik2.read( bufor, 1024 );
std::cout << "Wczytano" << plik2.gcount() << "bajtow do bufora" << std::endl;

Ale to mi wywala ile bajtoów ma plik :P A ja chcę, żeby wyświetliło tekst :) Jak to zapisać ?
P-97349
kubek3898
» 2013-11-24 18:00:50
Mówię, że nie wyświetlasz bufora a nie ilości bajtów...

std::cout << bufor;

@down

Z tego co wrzuciłem teraz u siebie na szybko, to nie potrzebna jest pętla.

@down x2

Dziwne, bo u mnie to działa, chyba że jest to jakieś UB, wtedy przepraszam.
P-97350
pekfos
» 2013-11-24 18:01:14
Wyświetl zawartość bufora? (w pętli)

C/C++
std::cout << bufor;
Tak nie można zrobić.
P-97351
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 18:02:15
@Kubek3898

Dzięki tera działa jak należy :D
Temat zamykam.

EDIT: Nie można ? Czemu ? U mnie zadziałało ;o
@up
U mnie też działa. Więc w czym problem?
P-97353
pekfos
» 2013-11-24 18:05:48
read() wczytuje blok danych, a nie c-stringa.
P-97354
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 18:07:20
Ale read() ma u mnie wczytać ZAWARTOŚĆ pliku, i działa więc dalej nie rozumiem czemu tak nie może być ? Jeśli tak być nie może to powiedz jak powinno być :P
P-97355
pekfos
» 2013-11-24 18:09:54
Prosty przykład:
C/C++
#include <iostream>
#include <fstream>
#include <cstring>

int main()
{
    std::ifstream ifs( "a.txt" );
   
    char buf[ 1024 ] = { };
    memset( buf, '*', 1023 );
   
    ifs.read( buf, 1023 );
    std::cout << buf;
}
P-97356
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 18:12:51
Skoro to ma tak wyglądać to powiedz mi czemu to działa :P
C/C++
std::cout << "Plik zostal otwarty pomyslnie!\nJego zawartosc zostala zaladowana ponizej:\n" << std::endl;
char bufor[ 1024 ];
plik2.read( bufor, 1024 );
cout << bufor;
cout << "\n";
} else std::cout << "Wystapil blad! Nie mozna otworzyc pliku!" << std::endl;

Czy to jest jakiś karygodny błąd przez, który aplikacja może się sypnąć czy coś w tym rodzaju ?
P-97358
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona