In informatica, il ritorno a capo è uno dei caratteri di controllo nel codice ASCII, Unicode, EBCDIC, e molti altri codici. Comanda ad una stampante, o ad un altro sistema di output come il display di una console di sistema, di spostare la posizione del cursore alla prima posizione sulla stessa linea. Era per lo più usato insieme al line feed (LF), uno spostamento alla linea successiva, in modo che insieme iniziassero una nuova linea. Insieme, questa sequenza può essere indicata come CRLF.
Le funzioni di ritorno a capo e di avanzamento riga furono divise per ragioni pratiche:
- Il ritorno a capo da solo forniva la possibilità di sovrastampare la linea con nuovo testo. Questo può essere usato per produrre caratteri in grassetto o accentati, sottolineature, testo barrato e alcuni simboli composti.
- Le prime stampanti meccaniche erano troppo lente per restituire il carrello nel tempo necessario per elaborare un carattere. Pertanto, il tempo speso per inviare l’avanzamento di riga non era sprecato (spesso dovevano essere inviati molti altri caratteri per assicurarsi che il ritorno a capo fosse avvenuto prima di inviare un carattere di stampa). Questo è il motivo per cui il ritorno a capo veniva sempre inviato per primo.
- Era anche possibile inserire più operazioni di avanzamento riga nel tempo impiegato per un singolo ritorno a capo, ad esempio per la stampa di testo a doppia spaziatura, intestazioni/piè di pagina o pagine di titoli, per risparmiare tempo di stampa e trasmissione senza la necessità di circuiti aggiuntivi o complessità meccanica per “filtrare” segnali CR aggiuntivi spuri.
A partire dal 1901, il codice Baudot conteneva caratteri separati di ritorno a capo e di avanzamento riga.
Molti programmi per computer usano il carattere di ritorno a capo, da solo o con un avanzamento riga, per segnalare la fine di una riga di testo, ma anche altri caratteri sono usati per questa funzione (vedi newline); altri lo usano solo per un’interruzione di paragrafo (un “ritorno duro”). Alcuni standard che introducono le proprie rappresentazioni per il controllo di riga e paragrafo (per esempio HTML) e molti linguaggi di programmazione trattano il ritorno a capo e l’avanzamento di riga come spazi bianchi.
In ASCII e Unicode, il ritorno a capo è definito come 13 (o 0D esadecimale); può anche essere visto come control+M o ^M. Nel linguaggio di programmazione C, e in molti altri linguaggi (comprese le espressioni regolari) influenzati da esso, \r
denota questo carattere.