You don't understand. \n is just a convention of the C compiler. The string does not really contain a "\n". Within a string, a new line is the hexadecimal character sequence 0d0a and not "\n".

The "#n" on the other hand is unrelated to the programming language. It is interpreted by the string generator, and thus always causes an empty string no matter if the string is initialized in C code or from a text file.

Hope this helps.