假设我有一个字符数组char str[10].
如果我将值存储xyz\nabc在strusing char str[10]="xyz\nabc";并输出它,它会给出以下输出:
xyz
abc
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我从stdin表单中给它输入xyz\nabc然后打印它,它会给出以下输出:
xyz\nabc
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
当你从中读取它时stdin,你会看到正好显示的字符串"xyz\nabc".
如果您在代码中硬编码该值(即char* x = "xyz\nabc"),则它\n是一个单个字符,它代表一个新行.要获得相同的输出,你需要char* x = "xyz\\nabc"- 额外的\逃避\.
请参阅http://en.cppreference.com/w/cpp/language/escape