Em computação, o retorno de transporte é um dos caracteres de controlo em código ASCII, Unicode, EBCDIC, e muitos outros códigos. Comanda uma impressora, ou outro sistema de saída, tal como a exibição de uma consola do sistema, para mover a posição do cursor para a primeira posição na mesma linha. Foi principalmente utilizado juntamente com a alimentação de linha (LF), um movimento para a linha seguinte, para que juntos iniciem uma nova linha. Juntos, esta sequência pode ser referida como CRLF.
As funções de retorno do carro e de avanço de linha foram divididas por razões práticas:
- O retorno do carro por si só proporcionou a capacidade de sobreimprimir a linha com um novo texto. Isto podia ser utilizado para produzir caracteres a negrito ou acentuados, sublinhados, texto estruturado, e alguns símbolos compostos.
- As impressoras mecânicas precoces eram demasiado lentas para devolver a carruagem no tempo que levava para processar um caracter. Portanto, o tempo gasto a enviar a alimentação da linha não foi desperdiçado (muitas vezes foi necessário enviar mais vários caracteres para garantir que a devolução da carruagem tinha acontecido antes de enviar um caracter de impressão). É por isso que o retorno da carruagem foi sempre enviado primeiro.
- Foi então também possível encaixar várias operações de alimentação de linha no tempo levado para um único retorno de carruagem – por exemplo, para imprimir texto em duplo ritmo, cabeçalhos/rodapés ou páginas de título – para poupar tempo de impressão e transmissão sem a necessidade de circuitos adicionais ou complexidade mecânica para “filtrar” sinais CR adicionais espúrios.
Como já em 1901, o código Baudot continha caracteres separados de retorno de transporte e de alimentação de linha.
Muitos programas de computador utilizam o carácter de retorno de transporte, sozinho ou com alimentação de linha, para assinalar o fim de uma linha de texto, mas outros caracteres são também utilizados para esta função (ver nova linha); outros utilizam-no apenas para uma quebra de parágrafo (um “retorno difícil”). Algumas normas que introduzem as suas próprias representações para controlo de linha e parágrafo (por exemplo HTML) e muitas linguagens de programação tratam o retorno de transporte e o avanço de linha como espaço em branco.
Em ASCII e Unicode, o retorno de transporte é definido como 13 (ou hexadecimal 0D); também pode ser visto como controlo+M ou ^M. Na linguagem de programação C, e muitas outras linguagens (incluindo expressão regular) influenciadas por ela, \r
denota este carácter.