本篇文章讲解题目:打印键盘
推荐先独立进行解题尝试,然后再阅读本篇讲解!
题目要求按照顺序输出键盘上的字符。
这一道题并非难题,然而确实好多人都容易被坑到。
其中的原因就是涉及到了转义字符的知识,所以当输出 \ 和 " 时,如果不注意的话便容易出现问题。
错误代码示例:
|
|
这段代码编译会发现报错。
为什么呢?
在C语言中,输出时为了表示如换行,缩进等普通字符无法表示的字符时,引入了“转义字符”这一概念。
因此如果直接输出\,便会把它与后边字符加在一起理解为转义字符,如果想输出\则可表示为\。
同理如果直接打",则会认为是提前把"“结束了,如果想输出字符”,则需要表示为"。
所以按照这个表进行改动。
这个时候运行发现还是和结果不相同,因为所输出的字符全部在同一行。
而我们想让它们一行输出一行,也就是“换行”。不过,多个printf是无效的,因为它只会“忠实”地执行你的代码。所以对于每一个printf来说,输出结束,它的“光标”是在输出之后的字符后面的。
现在我们回忆起来,当我们自己输入完一行之后,我们会按回车键来使光标移到下一行。那么再看上面的表,发现换行键的转义字符为 \n 。
所以便可以完整的写出正确代码,就是在原代码的基础上,每输出一行便在后面加一个 \n 即可。