Qual é a utilidade do '\n' na linguagem C?
Como outras respostas mencionadas, significa "nova linha". Os sistemas operacionais da família Unix (MacOS, Linux, etc.) também interpretam o caracter "\n" (ASCII 0x0a, o mesmo que linefeed) como novas linhas em arquivos. Estes SOs também interpretam "\r" (ASCII 0x0d, return) para ir para o início da linha, que você pode usar para fazer coisas interessantes no terminal.C no Windows irá converter "\n" interno para/de "\r\n" externo, representação de fim de linha do Windows (porque em dias antigos de teletipo você tinha que acertar return e depois linefeed para terminar uma linha). Eu sempre não gostei de fim de linha representado como dois caracteres porque em folhas nuas "\r" e nuas "\n" como ambíguos - programas diferentes os tratam de maneiras diferentes. A maioria dos protocolos de Internet (SMTP, IMAP, etc.) define fim de linha como "\r\n" mas é suposto aceitar "\n".
Pre-Unix Mac OS N (para N < 10) usou apenas um "\r" para um fim de linha, também convertido de "\n" em C para "\r" externamente.
The Unicode standard defines eight sequences that should be considered ending a line (from Newline - Wikipedia):
- LF: Line Feed, U+000A
- VT: Vertical Tab, U+000B
- FF: Form Feed, U+000C
- CR: Return, U+000D
- CR+LF: CR (U+000D) followed by LF (U+000A)
- NEL: Next Line, U+0085
- LS: Line Separator, U+2028
- PS: Paragraph Separator, U+2029
Didn’t think there was so much to just recognizing and end of line, did you?
Artigos semelhantes
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Qual é a diferença entre uma linguagem de montagem e uma linguagem de alto nível?
- Qual é a diferença entre a linguagem de montagem e a linguagem C?
- Porque é que a linguagem de montagem é melhor do que a linguagem de nível da máquina?