gpt4 book ai didi

c printf pretty-print 格式

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:55 24 4
gpt4 key购买 nike

我正在打印一系列行。行的长度不同。有时我必须在行尾添加空格以对齐行。在每行的末尾我添加“\n”字符.问题是“\n”之后的新行似乎是在下一行的一些空格之后开始的。它很奇怪。欢迎提出任何建议或意见。

switch(struct.var1) {
case 0:
switch(struct.var2)
{
case 1: printf("xyx");break;
case 2: printf("abc");break;
}
break;
case 2: printf("xyz");break;
case 3: printf("xyz");break;
.
.
.
.
.
.
.
.
.
.
.
.
.
.
case n: printf("XYZ ");break;
case m:printf("ABC ");break;
case 0xff:
switch(struct.var2)
{
case 1: printf("MNO ");
case 2: printf("QRS ");
}
}//end of switch case.

printf("\n");

请找到上面的代码片段。这显然是 printf 的对齐问题。我无法真正发现代码有任何问题。

最佳答案

您发布的代码不足以诊断问题,但我的建议是回避它。不要在字符串后打印空格来进行对齐,而是为字符串指定宽度合适的字段。

我要说的另一点是,如果可以的话,使用数组而不是 switch 语句:

char *strings[256][2] = {
{"xyz", "abc"},
// ...
{"MNO", "QRS"}
};

// print selected string left justified in a 7-character wide field.
printf("%-7s\n", strings[struct.var1][struct.var2]);

虽然从您发布的代码中不清楚选择字符串所涉及的值是否完全连续。如果它们不是很连续,但仍然相当密集(即,您使用的是大多数但不是全部值),最简单的方法可能是只用空字符串填充未使用的位置并仍然使用数组。

关于c printf pretty-print 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644432/

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