Utilisez comme caractère de retour chariot en C

Ammar Ali 12 octobre 2023
  1. Utilisez \n comme caractère de retour chariot en C
  2. Utilisez \r pour déplacer le curseur au début de la ligne en C
Utilisez 
 comme caractère de retour chariot en C

Ce tutoriel discutera de l’utilisation de \r comme caractère de retour chariot ou du déplacement du curseur au début de la ligne en C.

Utilisez \n comme caractère de retour chariot en C

\r est utilisé comme caractère de retour chariot représentant la touche retour ou Enter présente sur un clavier. La touche de retour chariot change par rapport à un système d’exploitation tel que Windows utilise \n et macOS utilise \r comme touche de retour chariot.

Si nous voulons vérifier si la touche Enter est enfoncée, nous pouvons utiliser le \r ou \n pour représenter le retour ou la touche Enter. Par exemple, nous pouvons utiliser la touche de retour chariot si nous voulons prendre l’entrée de l’utilisateur et terminer le processus d’entrée lorsque l’utilisateur appuie sur la touche Enter ou retour du clavier.

Par exemple, écrivons un code qui demande à l’utilisateur une phrase en lettres minuscules, puis compte le nombre de mots et de caractères présents dans la phrase, et lorsque l’utilisateur appuie sur Enter ou sur la touche de retour, le code finira. Voir le code ci-dessous.

#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();
}

Production:

Enter Sentence: hello world

 Words = 2 Characters = 10

Dans le code ci-dessus, nous avons utilisé deux variables, c_char et c_word, pour stocker le nombre de caractères et de mots. Nous avons initialisé le caractère utilisé pour terminer la boucle et l’avons comparé avec le caractère de retour chariot, qui est \n, car le code s’exécute sous Windows.

Nous avons utilisé la fonction getchar() pour obtenir les caractères qui sont pressés à partir du clavier, et lorsque la touche de retour ou la touche entrée est pressée, la boucle se rompra et le nombre de mots et de caractères sera imprimé en utilisant le fonction printf(). Nous avons utilisé l’instruction if pour vérifier si la touche espace est enfoncée, et si elle est enfoncée, nous incrémenterons la variable c_word, et si une autre touche est enfoncée, nous incrémenterons la variable c_char.

La fonction getch() est utilisée pour suspendre la sortie jusqu’à ce qu’une touche soit enfoncée afin que nous puissions voir la sortie et l’entrée. Dans le code ci-dessus, nous avons utilisé le \n comme touche de retour chariot car le code s’exécute sous Windows, et si le code ne se termine pas, nous pouvons tester le code avec \r.

Utilisez \r pour déplacer le curseur au début de la ligne en C

Le caractère \r peut également être utilisé pour déplacer le curseur au début d’une ligne dans certaines fonctions comme printf(), stderr() et stdout(). Le curseur se déplacera au début et remplacera le texte précédent avant le caractère \r par le nouveau texte présent après le caractère \r.

Par exemple, utilisons le caractère \r dans la fonction printf() pour remplacer le texte. Voir le code ci-dessous.

#include <stdio.h>

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

Production:

world hello
world world

Dans la première ligne du code ci-dessus, seul le premier mot ou les quatre premiers caractères sont remplacés par le nouveau mot, et le reste du texte reste le même. Dans la deuxième ligne du code, tout le texte précédent est remplacé par le nouveau texte car le nombre de caractères dans le nouveau texte est égal au nombre du texte précédent.

Tous les caractères de texte précédents seront remplacés uniquement si les nouveaux caractères de texte sont supérieurs ou égaux aux nouveaux caractères de texte.

Auteur: 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