# 一次＼r引发的输出异常

* 抖音：<https://v.douyin.com/i8GxjU3A/>
* B站：<https://www.bilibili.com/video/BV1iM411R7Uy/>

这个bug好玩啊

这个小伙伴

只是把一个base64做了一个解码

然后呢

打印他的解码后的长度和内容

我们来看一下啊

打开长度是

内容就这么几个字符

就是很奇怪

而且大家发现了吗

前面这几个汉字都没有了

然后我们调试一下

打开这个字符串的内容

大家看这是没有问题的

只是呢注意看啊

我们这么看它是有\r的

所以呢我就怀疑跟这\r有关系

我们复制一下哈

然后呢终止一下

我们直接呀写一个字符串

注意它自动换成杠n了

我们换成杠r

好我们试一下

大家看跟刚才的情况是一样的

那为什么会这样呢

有的人说\r不就是回车吗

是的\r确实是回车

但是呢他不是换行

我们打开一个控台看一下

我们直接echo一个带\r的内容

正常linux的话

我们需要加一个"-e"啊

mac系统不用

我们就：a

然后呢：\rb

注意大家看！它打印的是b

那这时候如果打两个a呢

大家看打印的是b a

那如果打印3个a呢

大家看就是baa了

那为什么会这样呢

我们来看这word哈

现在呢我已经输出了aaa了

也就说aaa

现在呢我要输出杠r

那杠r是回车

到底是什么呢

就是他要回到这一行的最前面

就是把光标啊挪到最前面这个位置

然后这个时候再输入新的字符

它就会替换原来的字符

像这样b

所以它就变成了b a a

那我用word演示呢

也是因为word它自身有这个功能哈

我已经开启了这个改写模式

在Windows里边呢

（大家可以直接按那个insert键来切换）

所以我们再回到这个问题上

它打印完这个\r之后

又回到第一行（口误：这一行）的第一个位置

重新打印这些内容

所以就被覆盖了

只是idea和控制台（口误：终端）它有一点不同

也就是说同样的这个程序

如果我们在控制台（口误：终端）里打印

大家看啊

我去直接执行这个Test文件

我们：java Test

大家看

它会打印这个分号后边还有的内容

也就是说如果最后一行的内容它比较短

那么在终端里

它后边的字母串它还存在

没有被替换掉

但是如果我们在idea的终端（控制台）里边

只要输入了

那么前面的内容都会被清空了

它重新的输入这一行


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sunzsh.gitbook.io/xiaoshan.bug/yi-ciryin-fa-de-shu-chu-yi-chang.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
