如果它是从文件输入中获取的,为什么 \n 不创建一个新行字符?

Why doesn't \n make a new line char if it is taken from file input?

如果我们在代码中写 char arg[]="hello\nworld"; 没问题,当我们打印字符串 arg 时,我们会在 helloworld.[=19 之间换行=]

但是如果我们从控制台或文本文件扫描这个字符串 hello\nworld 并将其存储在缓冲区中,并且如果我们打印它,我们不会在那里得到一个新行并且 \n按原样打印,即:hello\nworld.

可能这里'\'和'n'被当作不同的字符,但为什么会这样呢?我没听懂...

字符或字符串常量中的转义序列(如 "\n")由 编译器处理。如果您从文件中读取序列 '\''n',那么只有两个字符,从文件中读取不会解析内容(可能的换行符转换除外,这里我谈论 实际换行,字符代码10 in ASCII).