我们都知道如何使用\ t
进一步打印一个字符串printf ("Hello\tthere!\n");
输出:
Hello there!
如何向后打印一个标签?我知道我们可以使用\ r \ n从行的开头开始,但是有一种情况,当缩进比这更复杂时,我正在寻找类似\ bt(如果它存在)的东西,这样我就可以写:< / p>
printf ("Hello\tthere! \n\tHow\n\btare you?\n");
进入输出:
Hello there!
How
are you?
修改
我对这里的回复数量和速度感到惊讶,有时甚至是一些评论的无用,但只有少数。我想要实现的目标当然比这更复杂,它正确地格式化XML文件以便于阅读。我想确定没有更简单的方法,回复确认没有感谢。
修改2
对不起,伙计们,你对这个问题投反对票是正确的,首先是因为我没有说明我正在写一个文本文件,其次是因为我假设标签可以被文件处理程序“记住”。抱歉浪费你的时间。
答案 0 :(得分:3)
使用 printf 可以控制明确显示的标签数量。要返回选项卡,您只需使用较少的选项卡。从您提供的示例看起来,您希望标签级别能够记住,并且如何缩进比打印时更加缩进。它会出现在与那里相同的制表位!和是你吗?
假设:
printf ("Hello\tthere! \n\tHow\n\btare you?\n");
您期待看到:
Hello there! How are you?
然后只是不要在之前添加标签吗?,你会得到你想要的。要获得更少的标签,只需在 printf 中添加更少的 \ t 符号即可。 printf 之前没有任何内存显示标签。
printf ("Hello\tthere! \n\tHow\nare you?\n");
答案 1 :(得分:2)
不,没有特殊的角色可以做你想做的事。甚至\b
的行为也取决于平台。
\bt
很简单,退格字符后跟字母t
。因此支持语法,但没有特殊行为。
但为什么你需要这个呢?为什么不直接使用:
printf("Hello\tthere!\r\n\tHow\r\nare you?\n");
答案 2 :(得分:1)
没有办法“退回标签”,但还有其他选择:
正如您所指出的那样,\t
会向您提供一个标签。
\b
可以为您提供退格键,因此您可以“备份”。
还有一些不太常用的:
\f
是换页/新页面(从打印机弹出页面)
\v
是一个垂直标签(向下移动一行,在同一列上)
因此,使用其他选项可以模拟您想要的内容。
printf("Hello, this is\n\t\tjust a test.\n");
printf("Hello, this is\v\b\bjust a test.\n");
结束看起来像:
Hello, this is
just a test.
Hello, this is
just a test.
然后,您可以使用以下内容简化代码:
#define BACKTAB "\v\b\b"
printf("Hello, this is%sjust a test.\n", BACKTAB);
我认为这是你能做的最好的事情