为什么每个 brainf*ck 解释器(网络解释器除外)都显示这些字符? (♀♂)
Why does every brainf*ck interpreter (except the web ones) show these characters? (♀♂)
所以我尝试用 C++ 做我自己的 Brainf*ck 解释器,在我尝试这个程序之前一切都很顺利:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[.-]
它只是转到字母 C 并循环打印每个字符,直到转到 0。
我查看了其他程序,看看它们是否有相同的东西;一个 Python 解释 BF 的模块和一个也在 C++ 中的 GitHub 项目,每次其他两个程序以及我的程序输出:
♀♂A@?>=<;:9876543210/.-,+*)('&%$#"! ▼▲↔∟←→↓↑↨▬§¶‼↕◄►☼♫
♠♣♦♥☻☺
它不打印 C 和 B,而是打印这些符号:“♀♂”。我该如何解决?
您的程序将打印几个控制字符,包括序列“Carriage return、换页、垂直制表符、换行符”。回车 return 会将光标移回行首,然后开始覆盖已经存在的字符,即 'C' 和 'B'。您看到的符号显然是您的终端显示换页符和垂直制表符的方式。
换行符会将光标移动到下一行,这就是为什么只覆盖两个字符的原因。
所以我尝试用 C++ 做我自己的 Brainf*ck 解释器,在我尝试这个程序之前一切都很顺利:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[.-]
它只是转到字母 C 并循环打印每个字符,直到转到 0。
我查看了其他程序,看看它们是否有相同的东西;一个 Python 解释 BF 的模块和一个也在 C++ 中的 GitHub 项目,每次其他两个程序以及我的程序输出:
♀♂A@?>=<;:9876543210/.-,+*)('&%$#"! ▼▲↔∟←→↓↑↨▬§¶‼↕◄►☼♫ ♠♣♦♥☻☺
它不打印 C 和 B,而是打印这些符号:“♀♂”。我该如何解决?
您的程序将打印几个控制字符,包括序列“Carriage return、换页、垂直制表符、换行符”。回车 return 会将光标移回行首,然后开始覆盖已经存在的字符,即 'C' 和 'B'。您看到的符号显然是您的终端显示换页符和垂直制表符的方式。
换行符会将光标移动到下一行,这就是为什么只覆盖两个字符的原因。