如果我们在代码char arg[]="hello\nworld";
中写字就没问题了,当我们打印字符串arg
时,我们在hello
和world
之间会有一个新行。
但是如果我们从控制台或文本文件中扫描此字符串hello\nworld
并将其存储在缓冲区中,并且如果我们打印出来,那么我们就不会在那里获得新行并且会打印\n
实际上,即:hello\nworld
。
可能在这里'\
'和'n
'被视为不同的字符,但为什么会出现这种变化?我没有得到它......
答案 0 :(得分:10)
字符或字符串常量中的转义序列(如"\n"
)由编译器处理。如果您从文件中读取序列'\'
和'n'
,那么只读取两个字符,从文件读取不会解析内容(除了可能的换行转换,我在这里谈论< em>实际换行符,https://stackoverflow.com/a/3641809/5447906中的字符代码10
。