lsxly 发表于 2010-04-16 17:37

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

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

}

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

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

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

nelab 发表于 2010-04-17 17:19

引号去了,换%d试试

lsxly 发表于 2010-04-19 09:35

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

回复 2# nelab


   加引号只是个例子,实际上那是个字符串变量。因为有很多程序要修改,感觉不保险,所以想问问是否有更加便捷的方法可以实现,比如GLIBC有没有接口能修改pad变量什么的?总觉得有,但是看了vfprintf的源码,有的晕,不知道是否真的有。
页: [1]
查看完整版本: fprintf在输出字符串时如何实现左补零