在c语言中的%*f是什么意思??有什么作用???

如题所述

读语句中的格式 %*f 与 %f 的意义相同,就是从输入流中,按浮点数格式取一个输入元素。但 %*f 格式是 取一个输入元素后不传给任何参数,换句话说,就是丢弃它。%f是取一个输入元素后,传给读语句中给定的参数。

%*f %*d %*s 主要用于文件输入,作用是“跳过”某值,读别的值。例如输入文件内容:

1 10.1 Laowu 12.4
20 10.2 Laoliu 15.1
35 10.4 Laoba 9.2
...
有用的数是第四列,所以这样读:
for (i=0;i<n;i++) fscanf(fin,"%*d %*f %*s %f",&x[i]);
它将按格式“跳过" 每行前三个数,只读入每行第4个数,存到 x[i] 里。

键盘输入一般不用这种格式,因为没有必要多打一个数,再遗弃它。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-08
%*f是用来禁止赋值的,在输入函数时,对应于%*f的地方,可任意打一个数,该值不会赋值给任何变量。
第2个回答  2008-05-08
*表示本输出项在读入后不赋给相应变量。
例:#include <stdio.h>
void main()
{
int a,b;
scanf("%d %*d",&a,&b);
printf("%d%d\n",a,b);
}
%*d的值不会赋值给b变量。
第3个回答  2008-05-08
int a=3;
float b=2.0;

printf("%*f",a,b); == printf("%3f",b);
相似回答