karakters worden aangeduid standaard met ANSI ASCII (ofwel charset-7bit). Deze staan op vrijwel alle computers vast (128-255 verschilt per land en taal).
De eerste 32 karakters (0 t/m 31) worden gebruikt als control-codes.
Zo is 12 een form-feed op de printer, 8 een beltoon-geluid (vroeger gebruikten ze die bij een oude typemachine het einde van een regel aan te geven, en hoorde je een bel), 9 is een tab en 0 is einde regel van een ASCIIZ string.
Je hebt bij 'enters' wat verwarring omdat de verschillende systemen, verschillende manieren hebben om een enter te verwerken.
Je hebt namelijk, bedenk het is echt gebaseerd op een oude typemachine, de 'ga 1 regel naar beneden' en 'ga naar het begin van de regel'
In de praktijk kon je zo een regel overtikken.. over wat er al stond heen. Als je bijv 2 keer hetzelfde tikte werd de inkt wat dikker aangebracht en leek het bold!
Oude matrix printers kenden deze truc ook
Naar het begin van een regel wordt aangegeven met code 13 (decimaal), genaamde de CR (carrige return), dus 0xD (hecidecimaal) of \015 (octaal) of \r (scriptnotatie als php/perl/ruby, etc)
Naar de volgende regel is code 10 (LF ofwel Line Feed) (0xA, \012 of \n)
Op Linux heb je alleen karakter 10 en wil zeggen doe 13 + 10. 13 wordt genegeerd.
Op Windows heb je de combinatie 13 en dan 10 (CRLF)
Apple kent het precies andersom, zoals Apple/Motorola alles precies andersom hebben

10 en dan 13 (LFCR)
Commodore 8-bit machines, Acorn BBC, ZX Spectrum, TRS-80, Apple II family, Mac OS up to version 9 and OS-9 kennen alleen 13 (CR) als einde-regel.
Met andere woorden je moet de codes scannen op hun ascii waarde per karakter zoeken naar of 10 of 13, die weggooien, terwijl je de flag 'einde-regel' zet, dan als die flag is gezet een code ongelijk aan 10 en 13 vinden, en die zoeken we..
pseudo-code:
> variabele einde_regel = 0;
> voor A=alle karakters in string doe {
> .. als ascii-code(A) = 10 of 13 dan {
> .... zet einde_regel op 1
> .. }
> .. anders {
> .... als (einde_regel is 1 is waar) {
> ...... zet einde_regel op 0
> ...... code A is de eerste niet-enter
> .... }
> .. }
> }
Succes!