您的位置:首页 > 其它

关于 "%*d" 一类的用法总结

2009-08-31 10:59 363 查看
在C语言的输入输出流中,有时会出现 "%*d" 等的用法,上网搜了一下,总结如下:

输入时
"%*d" 等表示“虚度
”,即不读,例如:

double v1,v2;

scanf(" %lf %*d %lf %*d",&v1,&v2);


执行时必须有是个输入,如

11 22 33 44

但事实上只有第一个和第三个是有效输入,则v1=11 v2=33 输入域22和44被跳过了。

输出时
"%*d" 中的 "*" 表示占位符
,例如:

float f = 3.14159;

printf( "%*.*f", 10, 2, f);


输出时按出现顺序用10和2分别替换两个*,它等同于:printf("%10.2f", f);

又如

printf(
"%*d"
, 2,1);


则结果是 “ 1“
,注意,数字1前面有一位空格,因为指定的输出格式是2位的。

最后注意
的格式是

printf("%#o",a);

中,#o表示以八进制数表示a(为0ZZ的形式);同样, #x表示以十六进制数表示(为0xZZ或0XZZ)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐