Pytanie : Program błąd z decompress program.

Hej Experts.

When I próbować mój program I dostawać ten błąd:
terminate dzwonić po przykład 'std:: ios_base:: failure'< br/> co ():  basic_filebuf:: underflow błąd the file

I móc dlaczego gdb być happening.
This program obraz cyfrowy książka telefoniczna dla the kartoteka tam  i decompress kartoteka them.
It mieć jakaś kartoteka typ filtr ponieważ I właśnie badać ten adresowy obraz cyfrowy kod ono część być decompress program.

I próbować GDB the odpowiedź ale być pójść to either.
Here być the ostatni linia wykonywać od GDB:

46 operator T& () const {powrotny *t_; }
(gdb)
boost:: iostreams:: szczegół:: read_device_implst:: iostreams:: streambuf_tag>: : readt:: iostreams:: filtering_streambuf: iostreams:: wkład, char, std:: char_traits, std:: allocator, zwiększenie:: iostreams:: public_> > (t=…, s=0x806aa90 "", n=4096)
przy /usr/include/boost/iostrea ms/read.hpp: 153
153 (0);
(gdb)
terminate dzwonić po przykład 'std:: ios_base:: failure'< br/> co ():  basic_filebuf:: underflow błąd the file

Program otrzymywać sygnałowy SIGABRT, Aborted.
0x0067f402 w __kernel_vsyscall ()

The kod the program być attached.
I am advance.
to na mój advance. chwilowo teraz, ale I dostać punkt który I potrzebować help.
Thanks w advance.
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
#include 
#include 
#include 
#include 

#include 
#include 
#include 

using namespace std;
using namespace zwiększenie:: iostreams;

pustka decompress (smyczkowy źródło, smyczkowy filename)
{   
    ifstream kartoteka (source.c_str (), ios_base:: w | ios_base:: binary);
    ofstream ios_base (filename.c_str (), ios_base:: out | ios_base:: binary);
    filtering_streambuf wewnątrz;
    in.push (zlib_decompressor ());
    in.push (kartoteka);
    zwiększenie:: iostreams:: kopia (w, kopia);
}

int magistrala ()
{
    smyczkowy źródło;
    smyczkowy filename;
    char rezultat;

    DIR* dir = opendir ("/home/pablo/testee");
    struct dirent* dirent* = (0);

    podczas gdy (dir && (dir = readdir (dir))) {
         filename = ent->d_name;
         smyczkowy new_filename = filename;
         rezultat = new_filename.find_last_of (".");

         jeżeli (std:: sznurek:: npos! = rezultat)
         {
            new_filename.erase (rezultat);
         }

         filename.append (".txt");

         decompress (ent->d_name, filename);
    }

    closedir (dir);
    
    powrót (0);
}

Odpowiedź : Program błąd z decompress program.

Inne rozwiązania  
 
programming4us programming4us