fprintf在输出字符串时如何实现左补零

发布于 2022-09-18 10:27:35 字数 439 浏览 10 评论 2

有如下程序:
#include <stdio>
main(){
printf("string=[%06s]n","22");

}

在HP-UX上用cc编译器的话输出结果如下
string=[000022]

可是在Linux上是
string=[    22]
难解的问题是:
在Linux上fprintf在输出字符串时如何实现左补零?
OS是RHEL5.2 for X86_64
编译器是gcc 4.1.1
glibc是2.5-24

觉得printf.h中的printf_info.pad是不是有个接口能修改啊??
但是接口是什么?
真是郁闷,困惑了两天了.

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

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

发布评论

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

评论(2

多彩岁月 2022-09-19 03:23:32

本帖最后由 lsxly 于 2010-04-19 12:52 编辑

回复 2# nelab

   加引号只是个例子,实际上那是个字符串变量。因为有很多程序要修改,感觉不保险,所以想问问是否有更加便捷的方法可以实现,比如GLIBC有没有接口能修改pad变量什么的?总觉得有,但是看了vfprintf的源码,有的晕,不知道是否真的有。

早乙女 2022-09-18 18:27:27

引号去了,换%d试试

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