web-dev-qa-db-fra.com

Quel est le caractère de nouvelle ligne dans le langage C: \ r ou \ n?

Quel est le caractère de nouvelle ligne en C? Je sais que les différents systèmes d'exploitation ont des caractères de fin de ligne différents, mais ils sont traduits en caractère de nouvelle ligne C. Quel est ce personnage?

22
andy

C'est \n. Lorsque vous lisez ou écrivez des fichiers en mode texte, ou sur stdin/stdout, etc., vous devez utiliser \n, et C se chargera de la traduction. Lorsque vous traitez avec des fichiers binaires, par définition, vous êtes seul.

47
Paul Griffiths

La nouvelle ligne peut être pensée d'un n pechar et elle a la valeur de '\n'. C11 5.2.1

Cette nouvelle ligne C apparaît à trois endroits: le code source C, en tant que simple char et en fin de ligne dans les E/S sur fichier en mode texte.

  1. De nombreux compilateurs traiteront le texte source en tant qu'ASCII. Dans ce cas, les codes 10, parfois 13, et parfois associés 13,10 en tant que nouvelle ligne pour le code source. Si le code source avait été dans un autre jeu de caractères, différents codes pourraient être utilisés. Cette nouvelle ligne marque généralement la fin d'une ligne de code source (en fait un peu plus compliqué ici), les directives // comment et #.

  2. En code source, les 2 caractères \ et n représentent la char nouvelle ligne comme \n. Si ASCII est utilisé, ce char aurait la valeur 10.

  3. Dans le fichier I/O, en mode texte, à la lecture des octets du fichier d'entrée (et stdin), en fonction de l'environnement, lorsque octets avec la ou les valeurs de 10 (Unix), 13,1, (* 1) (Windows), 13 (Vieux Mac ??) et d’autres variantes sont traduits en '\ n'. Lors de l'écriture d'un fichier (ou stdout), la traduction inverse se produit.
    Remarque: les entrées/sorties de fichiers en mode binaire ne font aucune traduction.

Le '\r' dans le code source est le retour chariot char.

(* 1) Un seul 1 et/ou 1 peut également se traduire en \n.

12
chux

Si vous entendez newline le caractère newline c'est \ n et \ r est le caractère de retour de la porteuse, mais si vous voulez dire par newline la fin de ligne, cela dépend du système d'exploitation: DOS utilise le retour à la ligne et le saut de ligne ("\ r\n") comme fin de ligne, Unix n'utilise que le saut de ligne ( "\ n")

9
pavel.lazar

'\ r' = retour chariot et '\ n' = saut de ligne.

En fait, il existe différents comportements lorsque vous les utilisez dans différents systèmes d'exploitation. Sous Unix, c’est '\ n', mais c’est '\ r' '\ n' sous Windows.

5
TittleTattle