The C++ compiler has certain rules when control characters are provided –
documentation. As you can see, when you specify \n
in a string literal it is replaced by the compiler with a line feed (value 0xa for ASCII). So instead of 2 symbols, \
and n
, you get one symbol with binary code 0xa (I assume you use ASCII encoding), which makes the console move output to a new line when printed. When you read a string the compiler is not involved and your string has the actual symbols \
and n
in it.