Olen koodaamassa base64 dekoodaajaa ja vaatimuksena on mahdollisuus lukea base64-teksti tiedostosta tai näppäimistöltä.
Kysymykseni on ilmeisesti alkeellinen... Miten saan ohjelman tunnistamaan näppäimistöä käytettäessä että nyt teksti on kirjoitettu kokonaan? ENTER ei käy koska saman koodin tulisi myös osata dekoodata tiedostosta, jossa rivinvaihtoja on aina 64 merkin välein. Myöskään 2 enteriä ei käy, sillä vaatimuksena on myös etsiä ja dekoodata base64-teksti sähköpostiviestistä mallia MIME. Ongelma tulee nimenomaan tapauksessa, jossa base64-tekstissä ei lopussa ole ainuttakaan '=' -merkkiä.
Tiedostosta luettaessa seuraava koodi toimii hyvin:
i=0; while((merkki = getchar())!=EOF){ taulukko[i]=merkki; i++; if(merkki==10){ //jos enter merkki=getchar(); i++;} merkki = getchar(); } dekoodaa(taulukko);
Näppäimistöltä syötettäessä tämä kuitenkin jää odottamaan seuraava merkkiä. Taulukkoa joutuu ilmeisesti käyttämään siksi että voidaan tutkia onko teksti raakaa base64:sta vai jotain muuta. Muutoin tutkitut merkit katoavat??
Mahtaisiko jokin muu kuin getchar() hoitaa homman?
Kiitos vastauksista
Aihe on jo aika vanha, joten et voi enää vastata siihen.