Qu'est-ce que le retour de chariot, le linefeed, et le fourrage de forme?

Quelle est la signification des caractères de contrôle suivants:

  1. retour Chariot

  2. saut de Ligne

  3. Form feed

382
demandé sur legends2k 2010-06-22 12:40:31

11 réponses

retour de chariot signifie revenir au début de la ligne courante sans avancer vers le bas. Le nom vient d'un chariot d'imprimante, car les moniteurs étaient rares lorsque le nom était inventé. Ceci est généralement échappé comme "\R", CR abrégé, et a la valeur ASCII 13 ou 0x0D.

saut de ligne signifie avancer vers le bas à la ligne suivante; cependant, il a été réaffecté et renommé. Utilisé comme" newline", il se termine lignes (généralement confondus avec séparant ). Ceci est généralement échappé comme "\n", abrégé LF ou NL, et a la valeur ASCII 10 ou 0x0A. CRLF (mais pas CRNL) est utilisé pour la paire "\r\n".

alimentation de formulaires", une avance vers le bas jusqu'à la "page"suivante. Il était couramment utilisé comme séparateurs de page, mais est maintenant également utilisé comme séparateurs de section. (Il est peu fréquemment utilisé dans le code source pour diviser logiquement des fonctions indépendantes ou des groupes de fonctions.) Les éditeurs de texte peuvent utiliser ce personnage quand vous "insérez une coupure de page". Ceci est communément échappé comme "\f", abrégé FF, et a la valeur ASCII 12 ou 0x0C.

en tant que caractères de contrôle, ils peuvent être interprétés de différentes façons.

la différence la plus courante (et probablement la seule qui mérite qu'on s'inquiète) est que les lignes se terminent par CRLF sur Windows, NL sur Unix-likes, et CR sur les Mac plus anciens (la situation a changé avec OS X pour être comme Unix). Remarquez le changement de Signification de LF à NL, pour le même exact caractère, donne les différences entre Windows et Unix. (Windows est, bien sûr, plus récent Qu'Unix, donc il n'a pas adopté ce changement sémantique. Je ne sais pas si les Mac utilisent du CR.) Beaucoup d'éditeurs de texte peuvent lire des fichiers dans n'importe lequel de ces trois formats et convertir entre eux, mais pas tous les utilitaires peuvent.

forme feed est un peu plus intéressant( bien que moins couramment utilisé directement), et avec la définition habituelle du séparateur de page, il ne peut venir entre les lignes (par exemple après la séquence newline de NL, CRLF, ou CR) ou au début ou à la fin du fichier.

512
répondu Eric Lebigot 2017-06-21 09:26:32

\r est de retour chariot et déplace le curseur vers l'arrière comme si je n'-

printf("stackoverflow\rnine")
ninekoverflow

signifie qu'il a déplacé le curseur au début de" stackoverflow "et qu'il écrira les quatre caractères de départ puisque" neuf " fait quatre caractères de long.

\n est nouveau caractère de ligne qui change la ligne et prend le curseur au début d'une nouvelle ligne comme -

printf("stackoverflow\nnine")
stackoverflow
nine

\f est de la forme nourrir, son utilisation est devenue obsolète mais il est utilisé pour donner une indentation comme

printf("stackoverflow\fnine")
stackoverflow
             nine

si je vais l'écrire comme-

printf("stackoverflow\fnine\fgreat")
stackoverflow
             nine
                 great
79
répondu user3346547 2016-02-13 03:42:10

\f est utilisé pour le saut de page. Vous ne pouvez voir aucun effet dans la console. Mais lorsque vous utilisez ce caractère constant dans votre fichier, vous pouvez voir la différence.

un autre exemple est que si vous pouvez rediriger votre sortie vers un fichier, alors vous n'avez pas besoin d'écrire un fichier ou d'utiliser la gestion de fichier.

pour ex:

écrivez ce code en c++

void main()    
{
    clrscr();
    cout<<"helloooooo" ;

    cout<<"\f";
    cout<<"hiiiii" ;

}

et quand vous compilez cela, il génère un exe(par ex. abc.exe )

alors vous pouvez rediriger votre sortie vers un fichier en utilisant ceci:

abc > xyz.doc

puis ouvrir le fichier xyz.doc vous pouvez voir la page réelle rupture entre Helloo et hiiii....

25
répondu Balram Dixit 2013-12-19 16:25:49

regarder Wikipedia :

systèmes basés sur ASCII ou un jeu de caractères compatible utiliser soit LF (Line feed, '\n', 0x0A, 10 in decimal) ou CR (Carriage return, '\r', 0x0D, 13 in decimal) individuellement, ou CR suivi de LF (CR+LF, 0x0D 0x0A). Ces caractères sont basés sur les commandes de l'imprimante: l'alimentation en ligne indiquait qu'une ligne de papier devait sortir de l'imprimante, et un retour de chariot indiquait que l'imprimante le transport doit retourner au début de la ligne courante.

22
répondu tanascius 2010-06-23 01:15:27

en dehors de l'information ci-dessus, il ya encore une histoire intéressante de LF (\n) ET CR (\R). Source: http://www.ruanyifeng.com/blog/2006/04/post_213.html] Avant que l'ordinateur ne sorte, il y avait un type de téléimprimeur appelé télétype modèle 33. Il peut imprimer 10 caractères par seconde. Mais il y a un problème avec cela, après avoir terminé l'impression de chaque ligne, il faudra 0,2 seconde pour passer à la ligne suivante, qui est l'Heure de l'impression 2 caractère. Si un nouveau caractère est transféré pendant cette 0.2 seconde, alors ce nouveau caractère sera perdu.

ainsi les scientifiques ont trouvé un moyen de résoudre ce problème, ils ajoutent deux caractères de fin après chaque ligne, l'un est 'retour chariot', qui est de dire à l'imprimante d'apporter la tête d'impression à la gauche.; l'autre est "Line feed", il dit à l'imprimante de déplacer le papier vers le haut d'une ligne.

plus Tard, l'ordinateur est devenu populaire, ces deux concepts sont utilisés sur ordinateur. À cette époque, le périphérique de stockage était très cher, de sorte que certains scientifiques ont dit qu'il était coûteux d'ajouter deux caractères à la fin de chaque ligne, un est assez, Il ya donc quelques arguments sur lequel un à utiliser.

sous UNIX/Linux et Mac, '\n' à la fin de chaque ligne, dans Windows, '\r\n' à la fin de chaque ligne. La conséquence de cette utilisation est que les fichiers sous UNIX/Mac seront affichés en une seule ligne s'ils sont ouverts sous Windows. Tandis que le fichier dans Windows avoir un ^m à la fin de chaque ligne si ouvert dans UNIX ou Mac.

17
répondu wxie 2016-05-20 20:23:35

sur les vieux terminaux papier-imprimante, l'avance vers la ligne suivante impliquait deux actions: ramener la tête d'impression au début de la gamme de balayage horizontal (retour chariot) et avancer le rouleau de papier imprimé sur (ligne d'alimentation).

depuis que nous n'utilisons plus de terminaux papier-imprimante, ces actions ne sont plus vraiment pertinentes, mais les caractères utilisés pour les signaler sont restés collés dans diverses incarnations.

14
répondu Amber 2010-06-22 08:42:53

envisagez une imprimante à impact IBM 1403. CR a déplacé la tête d'impression au début de la ligne, mais n'a pas avancé le papier. Cela permettait de "surimprimer", en plaçant plusieurs lignes de sortie sur une ligne. Des choses comme le soulignement ont été réalisés de cette façon, tout comme l'impression en caractères gras. LF avancé le papier d'une ligne. S'il n'y avait pas de RC, la ligne suivante s'imprimerait en pas décalés parce que si on ne déplaçait pas la tête d'impression. FF a avancé le papier à la page suivante. Habituellement, elle aussi déplacé la tête d'impression le début de la première ligne sur la nouvelle page, mais vous pourriez avoir besoin de CR pour qui. Pour être sûr, la plupart des programmeurs ont codé CRFF au lieu de CRLF à la fin de la dernière ligne sur une page parce QU'un CR supplémentaire créé par FF ne serait pas important.

10
répondu Dick Guertin 2014-02-05 05:12:01

comme supplément,

1, Carriage return : c'est une terminologie d'imprimante qui signifie changer l'emplacement d'impression au début de la ligne current . Dans le monde de l'informatique, cela signifie le retour au début de la ligne courante dans la plupart des cas, mais représente la nouvelle ligne rarement.

2, Line feed : c'est une terminologie d'imprimante qui signifie avancer le papier d'une ligne. Donc, retour Chariot et un saut de Ligne sont utilisés ensemble pour commencer à imprimer au début d'une nouvelle ligne. Dans le monde informatique, il a généralement le même sens que newline.

3, Form feed : c'est une terminologie d'imprimante, j'aime l'explication dans ce fil .

si vous programmiez pour une imprimante des années 1980, il éjecterait le Papier et commencer une nouvelle page. Vous êtes pratiquement certain de ne jamais avoir besoin il.

http://en.wikipedia.org/wiki/Form_feed

il est presque obsolète et vous pouvez vous référer à séquence D'évasion \f-forme alimentation - qu'est-ce exactement? pour explication détaillée.

Note, Nous pouvons utiliser CR ou LF ou CRLF pour représenter newline dans certaines plates-formes, mais newline ne peut pas être tenu à leurs côtés dans d'autres plates-formes. Se référer à wiki Newline pour plus de détails.

LF: Multics, Unix et les systèmes de type Unix (Linux, OS X, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS ,et autres

CR: Commodore 8-bit machines, Acorn BBC, ZX Spectrum, TRS-80, Apple II de la famille, Oberon, le classique de Mac OS jusqu'à la version 9, MIT Lisp Machine et OS-9

RS: QNX pre-POSIX implementation

0x9B: Atari 8-bit machines utilisant la variante ATASCII de L'ASCII (155 in décimal)

CR+LF: Microsoft Windows, DOS (MS-DOS, PC DOS, etc.), DEC TOPS-10, RT-11, CP/ M, MP/ M, Atari TOS, OS / 2, Symbian OS, Palm OS, Amstrad CPC, et la plupart des autres OS anciens non-Unix et non-IBM

LF+CR: Acorn BBC and RISC OS spooled text output.

5
répondu Gearon 2017-05-23 12:10:33

"\n" est le caractère de saut de ligne. Cela signifie mettre fin à la ligne actuelle et passer à une nouvelle ligne pour quiconque la lit.

3
répondu vpit3833 2010-06-22 08:42:48

retour chariot et alimentation en ligne sont également des références à des machines à écrire, en ce que le papier, avec une petite poussée sur la poignée sur le côté gauche du chariot (l'endroit où le papier va), tournerait une petite quantité autour du cylindre, en avançant le document une ligne. Si vous aviez fini de taper une ligne, et que vous vouliez continuer à la suivante, vous avez poussé plus fort, à la fois en avançant une ligne et en faisant glisser le chariot jusqu'à la droite, puis en tapant à nouveau de gauche à droite comme le transport voyagé avec chaque frappe. Il va sans dire que word-wrap était le paramètre par défaut pour tout le traitement de texte de l'ère. P: D

3
répondu TheLastWordSword 2014-01-18 21:11:57

ce sont des caractères non imprimables, relatifs à la notion de"nouvelle ligne". \n saut de ligne. \r retour chariot. Sur différentes plateformes, ils ont des significations différentes, par rapport à une nouvelle ligne valide. Dans windows, une nouvelle ligne est \r\n. Sous linux, \N. En mac, \r.

Dans la pratique, vous les mettez dans n'importe quelle chaîne, et elle aura un effet sur l'impression de la chaîne.

2
répondu Palantir 2010-06-22 08:46:43