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?
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.
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.
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.
en code source, les 2 caractères
\n
représentent lechar
nouvelle ligne. Si ASCII est utilisé, cecichar
aurait la valeur de 10.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
.
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")
'\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.