Usar como carácter de retorno de carro en C

Ammar Ali 12 octubre 2023
  1. Utilice \n como carácter de retorno de carro en C
  2. Use \r para mover el cursor al comienzo de la línea en C
Usar 
 como carácter de retorno de carro en C

Este tutorial discutirá el uso de \r como el carácter de retorno de carro o moviendo el cursor de regreso al comienzo de la línea en C.

Utilice \n como carácter de retorno de carro en C

\r se usa como un carácter de retorno de carro que representa la tecla de retorno o Enter presente en un teclado. La tecla de retorno de carro cambia con respecto a un sistema operativo como Windows que usa \n y macOS usa \r como tecla de retorno de carro.

Si queremos verificar si la tecla Enter está presionada, podemos usar \r o \n para representar la tecla return o Enter. Por ejemplo, podemos usar la tecla de retorno de carro si queremos recibir información del usuario y finalizar el proceso de entrada cuando el usuario presione Enter o la tecla de retorno del teclado.

Por ejemplo, escribamos un código que le pida al usuario una oración en minúsculas, luego cuente la cantidad de palabras y caracteres presentes en la oración, y cuando el usuario presione Enter o la tecla de retorno, el código terminará. Vea el código a continuación.

#include <stdio.h>

int main() {
  int c_char = 0;
  int c_word = 1;

  printf("Enter Sentence: ");
  char ch = 'a';
  while (ch != '\n') {
    ch = getchar();
    if (ch == ' ')
      c_word++;
    else
      c_char++;
  }

  printf("\n Words = %d ", c_word);

  printf("Characters = %d", c_char - 1);

  getch();
}

Producción :

Enter Sentence: hello world

 Words = 2 Characters = 10

En el código anterior, usamos dos variables, c_char y c_word, para almacenar la cantidad de caracteres y palabras. Inicializamos el carácter utilizado para terminar el bucle y lo comparamos con el carácter de retorno de carro, que es \n porque el código se ejecuta en Windows.

Usamos la función getchar() para obtener los caracteres que se presionan desde el teclado, y cuando se presiona la tecla de retorno o la tecla Intro, el ciclo se interrumpirá y la cantidad de palabras y caracteres se imprimirán usando la función printf(). Usamos la instrucción if para verificar si se presiona la tecla de espacio, y si se presiona, incrementaremos la variable c_word, y si se presiona alguna otra tecla, incrementaremos la variable c_char.

La función getch() se usa para pausar la salida hasta que se presione una tecla para que podamos ver la salida y la entrada. En el código anterior, usamos \n como tecla de retorno de carro porque el código se ejecuta en Windows, y si el código no termina, podemos probar el código con \r.

Use \r para mover el cursor al comienzo de la línea en C

El carácter \r también se puede usar para mover el cursor de vuelta al principio de una línea en algunas funciones como printf(), stderr() y stdout(). El cursor se moverá al principio y reemplazará el texto anterior antes del carácter \r con el nuevo texto presente después del carácter \r.

Por ejemplo, usemos el carácter \r dentro de la función printf() para reemplazar el texto. Vea el código a continuación.

#include <stdio.h>

int main() {
  printf("hello hello \rworld\n");
  printf("hello hello \rworld world");
}

Producción :

world hello
world world

En la primera línea del código anterior, solo la primera palabra o los primeros cuatro caracteres se reemplazan por la nueva palabra, y el resto del texto permanece igual. En la segunda línea del código, todo el texto anterior se reemplaza con el nuevo texto porque el número de caracteres en el nuevo texto es igual al número del texto anterior.

Todos los caracteres de texto anteriores se reemplazarán solo si los caracteres de texto nuevos son mayores o iguales que los caracteres de texto nuevos.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook