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.
Il carattere new-line \n ha un significato speciale quando viene usato nell'I/O in modalità testo: viene convertito nel byte o nella sequenza di byte specifica del sistema operativo.
Le sequenze di escape ottali hanno un limite di tre cifre ottali, ma terminano al primo carattere che non è una cifra ottale valida se incontrato prima.
Le sequenze di escape esadecimali non hanno limiti di lunghezza e terminano al primo carattere che non è una cifra esadecimale valida. Se il valore rappresentato da una singola sequenza di escape esadecimale non rientra nella gamma di valori rappresentati dal tipo di carattere usato in questo letterale di stringa (char, char16_t, char32_t, o wchar_t), il risultato è non specificato.
Un nome di carattere universale in un letterale di stringa stretto o in un letterale di stringa a 16 bit può corrispondere a più di un carattere, ad esempio \U0001f34c è 4 unità di codice char in UTF-8 (\xF0\x9F\x8D\x8C) e 2 unità di codice char16_t in 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