[STM32F1] 关于C语言的转义字符\用法和\\和\\n用法

[复制链接]
1104|10
 楼主| 王小琪 发表于 2020-10-22 14:42 | 显示全部楼层 |阅读模式
我们在编写串口打印功能的时候经常会用到换行字符。代码分享如下
  1. #include <stdio.h>

  2. int main()
  3. {
  4. printf("        / \\n");
  5. printf("        123\n");
  6. printf("        123");
  7.         return 0;
  8. }
760135f91293810c18.png
\\表示的其实是\
\n表示的是换行
所以\\n表示的就是字符\和字符n
如果只有一个\,编译的时候会报错“unknown escape sequence: '\/'”
所以printf(" / \\n");编译后打印的效果就是   /\n

printf(" 123\n");编译后打印的效果就是123+换行
printf(" 123");编译后打印的效果就是123
sonicll 发表于 2020-10-22 15:18 | 显示全部楼层
请问一下,\n 和 \r\n 是什么区别呢,看起来都是换行
 楼主| 王小琪 发表于 2020-10-22 15:29 | 显示全部楼层
sonicll 发表于 2020-10-22 15:18
请问一下,\n 和 \r\n 是什么区别呢,看起来都是换行

我刚好之前研究过这个问题。
\n的意思是换行符,\r的意思是回车符。
unix下想要换行是\n
MAC下想要换行是\r
WIN下想要换行是\r\n
具体为什么可以研究下历史,应该是上古元年的一些纠纷。这也是windows和苹果电脑打开word文档可能会排版有问题的一个原因。
 楼主| 王小琪 发表于 2020-10-22 17:23 | 显示全部楼层
sonicll 发表于 2020-10-22 15:18
请问一下,\n 和 \r\n 是什么区别呢,看起来都是换行

还有一点就是我们平时所说的换行是指“光标挪到下一行,然后光标挪到该行的首位”
但是\n作用是换行“光标挪到下一行”,\r作用是回车“光标挪到首位”
所以WIN下想要换行是\r+\n
isageko 发表于 2020-10-23 17:41 | 显示全部楼层
哈哈很基础的东西 但是确实都是需要注意的一不小心就可能输出错误字符串
zhengfish 发表于 2020-10-23 19:12 来自手机 | 显示全部楼层
C语言常识
观海 发表于 2020-11-13 11:20 | 显示全部楼层
还是需要经常用啊 要不然就忘了
guanjiaer 发表于 2020-11-13 11:21 | 显示全部楼层
哈哈  好多年没有用过这个函数了
heimaojingzhang 发表于 2020-11-13 11:23 | 显示全部楼层
转义字符我每次都需要查查字符表
keaibukelian 发表于 2020-11-13 11:25 | 显示全部楼层
不小心的话就会出现不希望出现的字符
labasi 发表于 2020-11-13 11:26 | 显示全部楼层
非常有意思的代码  经常分不清到底是不是转义字符
您需要登录后才可以回帖 登录 | 注册

本版积分规则

232

主题

585

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部