【问题标题】:Is there any (opposite of newline) char?是否有任何(与换行符相反的)字符?
【发布时间】:2011-02-02 09:59:33
【问题描述】:

想知道我们是否可以从右到左,从下到上打印...我在尝试编写程序来打印以下正方形时想到了这个想法(对于输入“n”,此处为 n=4)

1  2  3  4
12 13 14 5
11 16 15 6 
10 9  8  7

这可以通过多种方式解决,通过存储到二维数组并打印数组...(任何语言:Perl、C、C++、Java)。

【问题讨论】:

  • 你不能从左到右、从上到下是有什么原因吗?我有执行列优先打印的代码(您执行行优先),这非常有用。想想ls -C 的正常输出,它是column-major。
  • 我听说过这样一个字符序列,被戏称为“行饿死”,作为换行的假定逆。不过,它绝对取决于终端。 foldoc.org/line+starve

标签: language-agnostic newline


【解决方案1】:

长答案是你可以做任何终端支持的事情。有多种终端(或“字符输出设备”),其中许多都支持光标移动。 (您可以查看Termcap Library 项目以创建图片不同终端类型的作用。)有一个用于向上移动一行的终端命令,所以基本上是的,您应该能够做到这一点。在termcap database戳之后,我想出了以下内容:

$ printf "\n"; printf '\e[A'; echo Foo
Foo

换句话说,\e[A 字符串有一个非零的机会让你排队。在某些终端上:)

【讨论】:

  • 快速 CNAP 搜索发现 Term::Cap。不过我没用过。
  • 啊,是的,在我的终端搜索中,我完全忘记了解决方案不必是简单的转义字符串。在这种情况下,肯定有很多库可以为您进行光标定位。
  • “反向换行”是\eM
【解决方案2】:

这基本上是可能的。但不是在传统的基于线路的终端上。当访问基于屏幕像素时,很容易解决这个问题。至少在 ASCII 中定义的 \n 没有真正的对应物。

或者也许这可以通过将终端的输入法更改为某种从左到右、从下到上读取的文化来存档。

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 2011-02-19
    • 2015-09-01
    • 1970-01-01
    相关资源
    最近更新 更多