的int基本上存储前导零。您遇到的问题是您不打印那里的前导零。
另一种不同的方法是创建一个函数,它将接受四个int值和一个字符串,然后用数字返回一个字符串。
通过这种方法,您可以获得非常好的凝聚力,无副作用,可重复使用的辅助功能,您可以在需要做类似工作的地方重复使用。
例如:
char *joinedIntString (char *pBuff, int int1, int int2, int int3, int int4)
{
pBuff[0] = (int1 % 10) + '0';
pBuff[1] = (int2 % 10) + '0';
pBuff[2] = (int3 % 10) + '0';
pBuff[3] = (int4 % 10) + '0';
pBuff[4] = 0; // end of string needed.
return pBuff;
}
然后在您需要打印的值,你可以只调用函数与参数和所提供的字符缓冲区,然后只打印的字符缓冲区的地方。
使用这种方法,如果你有一些不合理的数字,最终有多个前导零,你将得到所有的零。
或者您可能希望有一个函数将四个int整合到一个int中,然后另一个函数将打印带有前导零的组合int。
int createJoinedInt (int int1, int int2, int int3, int int4)
{
return (int1 % 10) * 1000 + (int2 % 10) * 100 + (int 3 % 10) * 10 + (int4 % 10);
}
char *joinedIntString (char *pBuff, int joinedInt)
{
pBuff[0] = ((joinedInt/1000) % 10) + '0';
pBuff[1] = ((joinedInt/100) % 10) + '0';
pBuff[2] = ((joinedInt/10) % 10) + '0';
pBuff[3] = (joinedInt % 10) + '0';
pBuff[4] = 0; // end of string needed.
return pBuff;
}
'setw'可能派上用场。 – chris
并且'setfill'也是。 – MPelletier
那些进入int? –