想知道我们是否可以从右到左、从下到上打印...当我尝试编写一个程序来打印以下正方形(对于输入“n”,此处 n=4)时,我想到了这个想法
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
这可以通过多种方式解决,通过存储到二维数组并打印数组......(任何语言:Perl、C、C++、Java)。
长的答案是,您可以执行终端支持的任何操作。终端(或“字符输出设备”)有很多种,其中许多支持光标运动。 (您可以查看 Termcap Library 项目来创建不同终端类型的作用的图片。)有一个用于向上移动一行的终端命令,所以本质上是的,您应该能够做到这一点。在查看 termcap 数据库后,我得出以下结论:
$ printf "\n"; printf '\e[A'; echo Foo
Foo
换句话说,
\e[A
字符串有非零的机会让你排队。在某些终端上:)
这基本上是可能的。但不是在传统的基于线路的终端上。当访问基于屏幕像素时,很容易解决这个问题。至少没有真正的对应物 以 ASCII 定义。
或者也许可以通过将终端的输入法更改为某种从左到右、从下到上阅读的文化来存档。
Unicode 字符
0x8d
被定义为反向换行,但在某些地方可能不起作用。