gpt4 book ai didi

escaping -\b、\f、\n、\r 有什么作用?有什么区别?

转载 作者:行者123 更新时间:2023-12-01 13:46:15 25 4
gpt4 key购买 nike

我想知道一些转义序列做了什么,包括以下内容:

\b backspace
\f form feed
\n new line
\r carriage return
\t tab

另外,换页、换行和回车有什么区别?\t 和空格有什么区别?他们都长得一样……

最佳答案

您可以使用 printf 测试这些转义序列。 ,例如在 C 程序中或使用 Unix/Linux shell(例如 Bash),如下所示。

  • 退格使光标在前一个字符上向后移动
  • 换页 通常只用于打印机,使当前页被送出,因此下一页是当前页
  • 新线 (换行)使光标移动到下一行。在 Unix 相关系统上,这也会导致光标移动到该行的开头。
  • 回车 使光标移动到当前行的开头。在使用 Windows(或 MS-DOS)或其亲属(尤其是其控制台)的系统上,回车和换行的组合用于换行。
  • 标签 使光标移动到下一个制表位位置,该位置通常以四个或八个字符位置的间隔设置。这对于在列中排列数据很有用。但是请注意,字符串格式如 printf 使用的格式。更可靠,因为使用选项卡仍然会导致交错列。请参阅此答案底部的示例。
  • 空间 将光标向前移动一个位置(与退格键相反)。请注意,在终端上(在屏幕上)空间通常是破坏性的——也就是说,如果一个字符位于光标移动的位置,则该字符将被删除。当在另一个字符存在的位置打印除空格以外的新字符时,会发生同样的事情(如下面的退格示例所示)。
  • $代表 shell 提示,不应键入。包含它是为了区分您键入的内容和输出的内容。我已经包含了一个换行符 \n在每个字符串的末尾,因此输出占据自己的行。
    $ printf 'help\blo - backspace\n'
    hello - backspace
    $ printf 'two\nlines - newline\n'
    two
    lines - newline
    $ printf 'clocks - carriage return\rsla\n'
    slacks - carriage return
    $ printf 'Fruit\tColor\tQuantity\ngrapes\tgreen\t100\nbananas\tyellow\t50\n- tabs\n'
    Fruit Color Quantity
    grapes green 100
    bananas yellow 50
    - tabs

    请查看 ASCII Control Characters想要查询更多的信息。

    试试这个看看如何 printf格式可以是对选项卡的改进:
    $ array=(A B C 'apple pie' 'banana split' 'cherry turnover' 100 200 300)
    $ for ((i=0; i<12; i+=3)); do printf '%s\t%s\t%s\n' "${array[@]:i:3}"; done
    A B C
    apple pie banana split cherry turnover
    100 200 300
    $ for ((i=0; i<12; i+=3)); do printf '%-16s%-16s%s\n' "${array[@]:i:3}"; done
    A B C
    apple pie banana split cherry turnover
    100 200 300

    如您所见,列在第二个版本中没有错开,并且总体输出宽度相同。

    关于escaping -\b、\f、\n、\r 有什么作用?有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35928774/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com