You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在printf中区分格式说明符与普通字符?

如何终止printf中的格式说明符

你想要打印出100us格式的微秒数,编写了如下代码:

long microseconds = 100L;
printf("%lus", microseconds);

但实际输出只有100s——这是因为%l和紧跟的u被解析成了unsigned long类型的格式说明符,而非long格式说明符加上普通字符u。

正确写法

要让u作为普通字符输出,只需将它与格式说明符分离:

long microseconds = 100L;
printf("%ldus", microseconds);

这里%ld是long类型的标准格式说明符,后面的us会被当作普通字符串直接输出,最终就能得到预期的100us。

如果需要更清晰的拆分,也可以写成:

printf("%ld%s", microseconds, "us");

内容的提问来源于stack exchange,提问作者baconcheese113

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:42:24