En informática, el retorno de carro es uno de los caracteres de control en el código ASCII, Unicode, EBCDIC y muchos otros códigos. Ordena a una impresora, o a otro sistema de salida como la pantalla de una consola del sistema, que mueva la posición del cursor a la primera posición de la misma línea. Se utilizaba sobre todo junto con el avance de línea (LF), un movimiento a la línea siguiente, de modo que juntos inician una nueva línea. Juntos, esta secuencia puede ser referida como CRLF.
Las funciones de retorno de carro y avance de línea se dividieron por razones prácticas:
- El retorno de carro por sí mismo proporcionaba la capacidad de sobreimprimir la línea con un nuevo texto. Esto podía utilizarse para producir caracteres en negrita o acentuados, guiones bajos, texto tachado y algunos símbolos compuestos.
- Las primeras impresoras mecánicas eran demasiado lentas para devolver el carro en el tiempo que tardaba en procesar un carácter. Por lo tanto, el tiempo empleado en enviar el avance de línea no se desperdiciaba (a menudo había que enviar varios caracteres más para asegurarse de que el retorno de carro había ocurrido antes de enviar un carácter de impresión). Por ello, el retorno de carro se enviaba siempre en primer lugar.
- Entonces, también era posible encajar múltiples operaciones de avance de línea en el tiempo que tardaba un solo retorno de carro -por ejemplo, para imprimir texto a doble espacio, encabezados/pies de página o páginas de título- para ahorrar tiempo de impresión y transmisión sin necesidad de circuitos adicionales o complejidad mecánica para «filtrar» señales CR adicionales espurias.
Ya en 1901, el código Baudot contenía caracteres separados de retorno de carro y avance de línea.
Muchos programas informáticos utilizan el carácter de retorno de carro, solo o con un avance de línea, para señalar el final de una línea de texto, pero también se utilizan otros caracteres para esta función (véase nueva línea); otros lo utilizan sólo para un salto de párrafo (un «retorno duro»). Algunos estándares que introducen sus propias representaciones para el control de líneas y párrafos (por ejemplo, HTML) y muchos lenguajes de programación tratan el retorno de carro y el salto de línea como espacios en blanco.
En ASCII y Unicode, el retorno de carro se define como 13 (o hexadecimal 0D); también puede verse como control+M o ^M. En el lenguaje de programación C, y en muchos otros lenguajes (incluyendo las expresiones regulares) influenciados por él, \r
denota este carácter.