古代的剑客们与
对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:对于 size t 那样的类型定义, 当我不知道它到底是 long 还是其它类型的时候, 我应该使用什么样的 printf 格式呢?
小林:把那个值转换为一个已知的长度够大的类型, 然后使用与之对应的 printf 格式。例如, 输出某种类型的长度, 你可以使用
printf(“%lu”, (unsigned long)sizeof(thetype));
读者:我如何用 printf 实现可变的域宽度?就是说, 我想在运行时确定宽度而不是使用 %8d?
小林:printf(“%*d”, width, x) 就能达到你的要求。
读者:如何输出在千位上用逗号隔开的数字?金额数字呢?
小林:<locale.h> 提供了一些函数可以完成这些操作, 但是没有完成这些任务的标准方法。printf() 惟一一处对应 locale 的地方就是改变它的小数点字符。
读者:为什么 scanf(“%d”, i) 调用不行?
小林:传给 scanf() 的参数必须是指针。改为 scanf(“%d”, &i) 即可修正上面的问题。
有时候,正是那些意想不到之人,成就了无人能成之事。
——图灵
小编二维码
长按/加好友
– END –
正文完