1
假设我有一个字符数组char str[10]
。为什么“ n”在输入stdin而不是代码时显示不同?
如果我存储使用char str[10]="xyz\nabc";
和输出它在str
值xyz\nabc
,它提供了以下输出:
xyz
abc
在另一方面,如果我给它的输入从stdin
形式xyz\nabc
然后打印它给出如下输出:
xyz\nabc
为什么会这样呢?
假设我有一个字符数组char str[10]
。为什么“ n”在输入stdin而不是代码时显示不同?
如果我存储使用char str[10]="xyz\nabc";
和输出它在str
值xyz\nabc
,它提供了以下输出:
xyz
abc
在另一方面,如果我给它的输入从stdin
形式xyz\nabc
然后打印它给出如下输出:
xyz\nabc
为什么会这样呢?
当您从stdin
中读取时,您会看到字符串"xyz\nabc"
。
如果您在代码中对该值进行硬编码(即char* x = "xyz\nabc"
),则\n
是单个字符,它代表一个新行。要获得相同的输出,您需要char* x = "xyz\\nabc"
- 额外的\
转义\
。
背后的原因是什么? –
@code_hacker,因为您不会从stdin读取转义字符。 :) –
谢谢了:) –