为什么不从文件输入中获取新行char?

时间:2016-05-14 05:00:02

标签: c file-io newline

如果我们在代码char arg[]="hello\nworld";中写字就没问题了,当我们打印字符串arg时,我们在helloworld之间会有一个新行。

但是如果我们从控制台或文本文件中扫描此字符串hello\nworld并将其存储在缓冲区中,并且如果我们打印出来,那么我们就不会在那里获得新行并且会打印\n实际上,即:hello\nworld

可能在这里'\'和'n'被视为不同的字符,但为什么会出现这种变化?我没有得到它......

1 个答案:

答案 0 :(得分:10)

字符或字符串常量中的转义序列(如"\n")由编译器处理。如果您从文件中读取序列'\''n',那么只读取两个字符,从文件读取不会解析内容(除了可能的换行转换,我在这里谈论< em>实际换行符,https://stackoverflow.com/a/3641809/5447906中的字符代码10