Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void decodeer(ifstream &invoer, ofstream &uitvoer){
- char prevkar = '$'; //vorige karakter (voor vergelijking); $ = default
- char kar; //huidig karakter
- int n = 0; // teller voor hoe vaak een karakter nog uitgevoerd moet worden
- int aantalTekensUit = 0; //teller voor grootte outputbestand
- int tellertje = 0; //teller voor voorloopnullen
- char onthoudLetter = '@'; //als een letter onthouden moet worden gebruiken we deze
- bool dubbelebackslash = false; //bool voor dubbele backslashes
- int aantalslash = 0; //aantal slashes dat de decodeerder tegenkomt
- kar = invoer.get();
- while (!invoer.eof())
- {
- if (kar == '0')
- tellertje++;
- if (kar == '\\')
- aantalslash++;
- else if (prevkar != '\\')
- aantalslash = 0;
- if (prevkar == '\\' && isGetal(kar)
- uitvoer << kar;
- if (isLetter(kar))
- uitvoer << kar;
- if (isGetal(kar) && (prevkar != '\\' || dubbelebackslash))
- n = 10*n + kar-'0';
- else {
- n = omgekeerdDecodeer(n, tellertje);
- tellertje = 0;
- while (n > 1){
- uitvoer << onthoudLetter;
- n--;
- }//while
- n = 0;
- onthoudLetter = kar;
- if (aantalslash != 1)
- uitvoer.put(kar);
- }//else
- if (aantalslash == 2)
- dubbelebackslash = true;
- else
- dubbelebackslash = false;
- aantalTekensUit++;
- prevkar = kar;
- kar = invoer.get();
- }//while
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement