1*16dce513Schristos /* 2*16dce513Schristos * Test program for gzifstream and gzofstream 3*16dce513Schristos * 4*16dce513Schristos * by Ludwig Schwardt <schwardt@sun.ac.za> 5*16dce513Schristos * original version by Kevin Ruland <kevin@rodin.wustl.edu> 6*16dce513Schristos */ 7*16dce513Schristos 8*16dce513Schristos #include "zfstream.h" 9*16dce513Schristos #include <iostream> // for cout 10*16dce513Schristos main()11*16dce513Schristosint main() { 12*16dce513Schristos 13*16dce513Schristos gzofstream outf; 14*16dce513Schristos gzifstream inf; 15*16dce513Schristos char buf[80]; 16*16dce513Schristos 17*16dce513Schristos outf.open("test1.txt.gz"); 18*16dce513Schristos outf << "The quick brown fox sidestepped the lazy canine\n" 19*16dce513Schristos << 1.3 << "\nPlan " << 9 << std::endl; 20*16dce513Schristos outf.close(); 21*16dce513Schristos std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n" 22*16dce513Schristos << "The quick brown fox sidestepped the lazy canine\n" 23*16dce513Schristos << 1.3 << "\nPlan " << 9 << std::endl; 24*16dce513Schristos 25*16dce513Schristos std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n"; 26*16dce513Schristos inf.open("test1.txt.gz"); 27*16dce513Schristos while (inf.getline(buf,80,'\n')) { 28*16dce513Schristos std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 29*16dce513Schristos } 30*16dce513Schristos inf.close(); 31*16dce513Schristos 32*16dce513Schristos outf.rdbuf()->pubsetbuf(0,0); 33*16dce513Schristos outf.open("test2.txt.gz"); 34*16dce513Schristos outf << setcompression(Z_NO_COMPRESSION) 35*16dce513Schristos << "The quick brown fox sidestepped the lazy canine\n" 36*16dce513Schristos << 1.3 << "\nPlan " << 9 << std::endl; 37*16dce513Schristos outf.close(); 38*16dce513Schristos std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form"; 39*16dce513Schristos 40*16dce513Schristos std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n"; 41*16dce513Schristos inf.rdbuf()->pubsetbuf(0,0); 42*16dce513Schristos inf.open("test2.txt.gz"); 43*16dce513Schristos while (inf.getline(buf,80,'\n')) { 44*16dce513Schristos std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 45*16dce513Schristos } 46*16dce513Schristos inf.close(); 47*16dce513Schristos 48*16dce513Schristos return 0; 49*16dce513Schristos 50*16dce513Schristos } 51