如果它是从文件输入中获取的,为什么 \n 不创建一个新行字符?
Why doesn't \n make a new line char if it is taken from file input?
如果我们在代码中写 char arg[]="hello\nworld";
没问题,当我们打印字符串 arg
时,我们会在 hello
和 world
.[=19 之间换行=]
但是如果我们从控制台或文本文件扫描这个字符串 hello\nworld
并将其存储在缓冲区中,并且如果我们打印它,我们不会在那里得到一个新行并且 \n
按原样打印,即:hello\nworld
.
可能这里'\
'和'n
'被当作不同的字符,但为什么会这样呢?我没听懂...
字符或字符串常量中的转义序列(如 "\n"
)由 编译器处理。如果您从文件中读取序列 '\'
和 'n'
,那么只有两个字符,从文件中读取不会解析内容(可能的换行符转换除外,这里我谈论 实际换行,字符代码10
in ASCII).
如果我们在代码中写 char arg[]="hello\nworld";
没问题,当我们打印字符串 arg
时,我们会在 hello
和 world
.[=19 之间换行=]
但是如果我们从控制台或文本文件扫描这个字符串 hello\nworld
并将其存储在缓冲区中,并且如果我们打印它,我们不会在那里得到一个新行并且 \n
按原样打印,即:hello\nworld
.
可能这里'\
'和'n
'被当作不同的字符,但为什么会这样呢?我没听懂...
字符或字符串常量中的转义序列(如 "\n"
)由 编译器处理。如果您从文件中读取序列 '\'
和 'n'
,那么只有两个字符,从文件中读取不会解析内容(可能的换行符转换除外,这里我谈论 实际换行,字符代码10
in ASCII).