CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] \r ?

Chweps
Chweps
Niveau 10
31 octobre 2010 à 16:44:31

Que veut dire \r en langage C :svp:

deepblue
deepblue
Niveau 16
31 octobre 2010 à 16:59:47

Je crois que c'est la fin d'une ligne pour sur Windows (\n étant le retour à la ligne) :
foo\r\n

chris_27
chris_27
Niveau 10
31 octobre 2010 à 17:18:17

Ça veut dire "retour au début de la ligne courante" :

chris@melange:~/tmp% cat t.c

  1. include <stdio.h>

int main()
{
printf("Bonjour !\r");
printf("TOTO\n");

return 0;
}

chris@melange:~/tmp% tcc -run t.c
TOTOour !

dnob700
dnob700
Niveau 10
31 octobre 2010 à 20:04:54

deepblue : tu confonds (un peu) avec les codes ascii et la représentation standard des retours à la ligne sous les différents système d'exploitation.

Il y a deux caractères qui, historiquement (du temps des premières imprimantes et des telescripteurs qui étaient controllées directement par des codes ascii), servaient aux retours à la ligne :
- le caractère 10 (en décimal) ou Line Feed (LF)qui fait avancer la feuille d'une ligne.
- le caractère 13 ou Carriage Return (CR), qui renvoie la curseur au début de la ligne.

Donc à cette époque, pour "aller à la ligne" il faut faire soit CR puis LF soit LF puis CR.

Ensuite, de nos jours, l'important c'est la manière dont les logiciels interprètent et affichent ces codes qui compte. Sous windows, les programmes attendaient générallement les caractère CR puis LF pour afficher un retour à la ligne. Sous linux, les programmes ne s'attendait qu'à voir le caractère LF pour afficher un retour à la ligne (mais aujourd'hui, beaucoup de programmes sont assez souples avec ce genre de chose).

D'un autre coté, les caractères spéciaux en C '\n' et '\r' sont un peu orthogonaux car ils ne spécifient pas un code ascii particulier, mais une fonctionnalité particulière. Lorsque '\n' est affiché dans un terminal, le curseur doit aller au début de la ligne suivante et lorsque le caractère '\r' est affiché le curseur doit aller au début de la ligne courante. Indépendamment de la représentation de cette action.

Par exemple, sous windows, bien que le retour à la ligne prennent deux caractères, '\n' est quand même un seul "char".

deepblue
deepblue
Niveau 16
31 octobre 2010 à 22:30:34

Merci pour l'explication ^^

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment