Witam,
napisałem prosty program, który ma za zadanie kompresować pliki. Pojawiły się 2 problemy:
- Ja obliczyć długość pliku - potrzebne do pętli (dlatego przypisałem długość ręcznie int b)
- Program zawiesza się po kilku sekundach.
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <bitset>
using namespace std;
int main()
{
string str,napis;
ifstream in;
in.open("data.txt");
getline(in,str);
while ( in )
{
napis += str;
getline(in,str);
}
int a, b, licznik = 0;
//b = napis.length(); // nie działa poprawnie
b = 78069;
cout << "Dlugosc pliku: " << b << endl;
ofstream myfile;
myfile.open ("wynik.txt");
for(a=0;a<b;a++)
{
if(napis[a] == napis[a+1]) licznik++;
else
{
if(licznik>0)
{
licznik = licznik-1;
myfile << napis[a];
myfile << napis[a];
myfile << licznik;
licznik = 0;
}
else
{
myfile << napis[a];
}
}
cout << a << " / " << b << endl;
}
myfile.close();
cout << "Konwersja zakonczona" << endl;
system("pause");
}