Der er en tvetydighed i dit spørgsmål, som viser sig i de to forskellige kommentarer, du har fået.
Kommentar 1 er rigtig, hvis du ønsker, at udskrive de tegn, som de læste byte-koder svarer til, mens kommentar 2 er rigtig, hvis du ønsker at udskrive talkoderne for de modtagne tegn, f.eks. som hexadecimale koder.
Din egen efterfølgende kommentar er nok en misforståelse, da 0x00 ikke betyder space i de gængse tegntabeller. Det er normalt 0x20, som er space. Se f.eks.
http://www.asciitable.com/
Jeg aner ikke hvordan din readfile er defineret, så det må du selv tilrette, men her er nogle muligheder for at udskrive din byte:
byte b;
b = readfile(f);
printf("%i",b); // Decimalt output
printf("0x%02X ", b); // Hexadecimalt output
printf("%c", b); // Output som det tegn, der har koden b
Ved output som tegn, skal du være opmærksom på, at en del koder har kontrolvirkning, så de ikke bare udskrives, men f.eks. siger "ding" i højttaleren, spoler et tegn eller en linie baglæns, eller bare ikke skriver nogetsomhelst. Se tegnkodetabellen refereret ovenfor.
Bemærk, at printf ikke skifter linie af sig selv. For at få linieskift skal du udskrive tegnet "\n". Hvis du vil have eet tegn på hver linie, så skriver du:
printf("%c\n", b); // Output som det tegn, der har koden b og skift linie.
Nå, men det er jo slet ikke sikkert, at det er printf, du skal bruge - det er kun til at skrive ting ud på en konsol. Hvis du skal skrive teksten i et felt i et vindue, du har designet, skal du først opbygge en passende strengrepræsentation af den tekst, der skal skrives. I så fald skal du igen passe gevaldigt på kontroltegnene. Det kan være en god ide at bruge sprintf, til at skrive ind i en char[] buffer, eller bedre brug en stringbuffer i C++ til at opsamle teksten du vil skrive.
Med venlig hilsen
Peter M. Bruun