前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一面(79)

基础知识 | 每日一面(79)

作者头像
小林C语言
发布2020-03-19 17:23:30
2500
发布2020-03-19 17:23:30
举报

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:对于 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 -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档