gpt4 book ai didi

c -\t 和\b 做什么?

转载 作者:太空狗 更新时间:2023-10-29 16:22:43 24 4
gpt4 key购买 nike

我期待这行简单的代码

printf("foo\b\tbar\n");

将“o”替换为“\t”并产生以下输出

fo     bar

(假设制表位每 8 个字符出现一次)。相反我得到

foo    bar

我的 shell 似乎将\b 解释为“将光标向后移动一个位置”,将\t 解释为“将光标移动到下一个制表位”。这种行为是否特定于我运行代码的 shell?我应该期望在不同的系统上有不同的行为吗?

最佳答案

不,这或多或少是他们的本意。

在 C(和许多其他语言)中,您可以使用 \ 符号插入难以看到/键入的字符:

  • \a 是警报/响铃
  • \b 是退格键/rubout
  • \n 是换行符
  • \r为回车(返回左边距)
  • \t 是标签

您还可以使用 \0nnn 指定任何字符的八进制值,或使用 \x< em>nn.

  • EG:_的ASCII值为八进制137,十六进制5f,所以也可以打成\0137\x5f,如果您的键盘没有 _ 键或其他键。这对于 NUL (\0) 和 ESC (\033)
  • 等控制字符更有用

正如有人发布的(然后在我可以 +1 之前删除了他们的答案),还有一些不太常用的:

  • \f 是换页/新页面(从打印机弹出页面)
  • \v 是一个垂直制表符(向下移动一行,在同一列)

在屏幕上,\f 通常与 \v 相同,但在某些打印机/电传打字机上,它会一直到下一张纸。

关于c -\t 和\b 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657702/

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