What is the meaning of \n and \t in C language?
These are Escape sequences
Escape sequences are used to represent certain special characters within string literals and character literals.
The following escape sequences are available (extra escape sequences may be provided with implementation-defined semantics):
Escape
sequence
Description
Representation
\'
single quote
byte 0x27 in ASCII encoding
\"
double quote
byte 0x22 in ASCII encoding
\?
question mark
byte 0x3f in ASCII encoding
\\
backslash
byte 0x5c in ASCII encoding
\a
audible bell
byte 0x07 in ASCII encoding
\b
backspace
byte 0x08 in ASCII encoding
\f
form feed - new page
byte 0x0c in ASCII encoding
\n
line feed - new line
byte 0x0a in ASCII encoding
\r
carriage return
byte 0x0d in ASCII encoding
\t
horizontal tab
byte 0x09 in ASCII encoding
\v
vertical tab
byte 0x0b in ASCII encoding
\nnn
arbitrary octal value
byte nnn
\xnn
arbitrary hexadecimal value
byte nn
\unnnn
universal character name
(arbitrary Unicode value);
may result in several characters
code point U+nnnn
\Unnnnnnnn
universal character name
(arbitrary Unicode value);
may result in several characters
code point U+nnnnnnnn
Notes
Of the octal escape sequences, \0 is the most useful because it represents the terminating null character in null-terminated strings.
O caractere de nova linha \n tem um significado especial quando usado em modo texto I/O: ele é convertido para o byte de nova linha ou seqüência de bytes específica do SO.
Sequências de escape octal têm um limite de três dígitos octais, mas terminam no primeiro caractere que não é um dígito octal válido se encontrado mais cedo.
Sequências de escape hexadecimais não têm limite de comprimento e terminam no primeiro caractere que não é um dígito hexadecimal válido. Se o valor representado por uma única seqüência de escape hexadecimal não se encaixa no intervalo de valores representados pelo tipo de caractere utilizado nesta string literal (char, char16_t, char32_t, ou wchar_t), o resultado não é especificado.
Um nome de caractere universal em uma string estreita literal ou uma string literal de 16 bits pode mapear mais de um caractere, por exemplo \U0001f34c é 4 unidades de código char em UTF-8 (\xF0\x9Fx8D\x8C) e 2 unidades de código char16_t em UTF-16 (\uD83C\uDF4C)).
The question mark escape sequence \? is used to prevent trigraphs from being interpreted inside string literals: a string such as "??/" is compiled as "\", but if the second question mark is escaped, as in "?\?/", it becomes "??/"
Example
Run this code
- #include
- int main()
- {
- std::printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n");
- }
Output:
- This
- is
- a
- test
- She said, "How are you?"
See also
- ASCII chart
C documentation for Escape sequence