如何 printf 始终打印一列的字符

发布于 2024-11-09 01:38:43 字数 129 浏览 0 评论 0原文

当我打印 %c 格式的字符并且该字符像“\0”一样不可打印时,则没有打印输出列。如果我使用 %1c 也是如此。或%1.1c。有没有办法强制 printf 输出 '\0' 的列?

我正在做一些大型 printf,我希望列能够匹配。

When I printf a char with %c format and the char is unprintable like '\0' then there is no column of printout. Same if I use %1c. Or %1.1c. Is there a way to force printf to output a column for '\0'?

I'm doing some large printf's and I want columns to match up.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苍景流年 2024-11-16 01:38:43

对于 printf 你无能为力。但是您可以使用 isprint 来过滤 printf 的参数

printf("%c", (isprint(c) ? c : ' ' ));

There is nothing you can do for printf. But you can use isprint to filter the arguments of printf

printf("%c", (isprint(c) ? c : ' ' ));
妄想挽回 2024-11-16 01:38:43

怎么样写

printf("%c",(c<' ')?' ':c);

你可以轻松地将其放入#define中。

How about writing

printf("%c",(c<' ')?' ':c);

You can easily put this in a #define.

十秒萌定你 2024-11-16 01:38:43

您可以将字符参数更改为

isgraph(c) 吗?丙:''

you could change the character argument to

isgraph(c) ? c : ' '

走走停停 2024-11-16 01:38:43

您可以使用 isprint 函数首先检查该字符是否可打印。

if(isprint(c)) {
   printf("%c", c);
}
else {
   print("?");
}

但不确定您打算如何处理不可打印的字符。

You could use the isprint function to check to see if the character is printable first.

if(isprint(c)) {
   printf("%c", c);
}
else {
   print("?");
}

Not sure what you plan on doing with non-printable characters though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文