Quel est le caractère newline dans la langue C: R ou n?

Quel est le caractère newline en C? Je sais que les différents OS ont des caractères de fin de ligne différents, mais ils sont traduits dans le caractère c newline. Quel est ce personnage?

18
demandé sur jubobs 2013-08-22 16:01:04

4 réponses

\n. Lorsque vous lisez ou écrivez des fichiers en mode texte, ou à stdin / stdout etc, vous devez utiliser \n, et C s'occupera de la traduction pour vous. Lorsque vous avez affaire à des fichiers binaires, par définition, vous êtes seul.

41
répondu Paul Griffiths 2013-10-27 02:53:25

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

cette nouvelle ligne C apparaît en 3 endroits: C code source, en un seul char et comme fin de ligne dans le fichier I / O quand texte mode.

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

  2. en code source, les 2 caractères\n représentent le char nouvelle ligne. Si ASCII est utilisé, ceci char aurait la valeur de 10.

  3. Dans le fichier I/O, en mode texte, en lisant les octets du fichier d'entrée (et stdin), selon l'environnement, lorsque les octets ont la valeur(S) de 10 (Unix), 13,10, (*1) (Windows), 13 (Old Mac??) et d'autres variantes sont traduites en '\n'. Lors de l'écriture d'un fichier (ou stdout), la traduction inverse se produit.

    Note: les entrées/sorties de fichier en mode binaire ne font pas de traduction.

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

(*1) Un seul 13 et/ou 10 peut aussi se traduire par \n.

11
répondu chux 2013-08-22 14:46:32

si vous voulez dire par newline le caractère de saut de ligne c'est \n et \r est le caractère de retour du support, mais si vous voulez dire par newline la fin de ligne alors cela dépend du système d'exploitation: DOS utilise le retour de chariot et le flux de ligne ( "\r\n") comme fin de ligne, Unix utilise juste line feed ( "\n")

8
répondu pavel.lazar 2013-08-22 12:22:29

'\r ' = retour de chariot,' \n ' = Alimentation en ligne , en fait il y a des comportements différents quand vous les utilisez dans différents OS.Dans Unix, C'est' \n 'mais C'est' \r '\n ' Dans Windows.J'espère que cela peut vous aider.

4
répondu TittleTattle 2013-08-22 12:15:14