我正在用c编写程序,我使用printf()
函数在我的屏幕上显示信息。在我的程序中,我有一些问题填充包含普通字符和%s
标志的字符串。
以下是我目前的一段代码:
printf ("<%s>\t%s\n", type, name);
// displays the following text:
// <int> x
// <char> c
// <double**> d
由于type
变量长度的变化,使用制表有时会导致列之间的偏移。我想指定<type>
文本最多可以包含10个字符,并且只开始在第12个字符处显示名称,如下所示:
<int> a
<char> b
<double**> x
^^^^^^^^^^^^ <- 12th column
我已经阅读了几个使用%12s
或%-12s
向左或向右填充字符串的问题。但是,我要填写的部分是<%s>
。如何指定其长度,因为它包含常规字符(<
和>
)和%s
标记?
答案 0 :(得分:0)
-11使字段11变宽,左对齐第一个值。
然后两个值之间有一个空格。
然后是最终值......
#include <stdio.h>
int main(void)
{
printf("%-11s %s\n", "<int>" , "x");
printf("%-11s %s\n", "<char>" , "c");
printf("%-11s %s\n", "<double**>", "d");
return 0;
}
<int> x
<char> c
<double**> d
假设您的字符串符合11个字符。如果它更长,它会溢出
#include <stdio.h>
int main(void)
{
printf("%-11s %s\n", "<int>" , "x");
printf("%-11s %s\n", "<char>" , "c");
printf("%-11s %s\n", "<double**>", "d");
printf("%-11s %s\n", "<abcdefghijklmnopqrstuvwxyz>", "alphabet");
return 0;
}
<int> x
<char> c
<double**> d
<abcdefghijklmnopqrstuvwxyz> alphabet
这是一个不错的异地cheat sheet。