本文主要是介绍C语言printf( ) 函数和 scanf( ) 函数格式符的修饰符 “*”有什么作⽤?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题
在 printf( ) 函数和 scanf( ) 函数的格式修饰符有很多,以浮点型数据为例,有%f、%lf、 %3.0f、%.4f等。不同的修饰符表示不同的含义,那么修饰符“*”有什么含义呢?
二、解答
下⾯通过例⼦来证明⼀下这个格式符在 printf( ) 函数中的作⽤是什么。相应代码如下。
main()
{int a, b;a = 66, b = 2;printf("%*d\n", b + 2, a);
}
程序的运⾏结果如下所示。
66
由此结果可以发现,整数 66 前⾯多出两个空格,这就是修饰符“*”在 printt( ) 函数中起到的作⽤,即为指定的表达式的值给定输出项的域宽。本例中,输出项中给出的域宽为 b+2,也就是4,因此去掉 66 占掉的两个宽度,前⾯还空下两个宽度。在此例中,相当于输出 %4d。
那么在 scanf( ) 函数中的修饰符“*”与在 printf( ) 函数中的作⽤相同吗?下⾯通过⼀个例⼦,来验证⼀下在两个函数中的作⽤是否相同,相应代码如下。
main()
{char a[80]; scanf("%*2s%s",a);printf('a=%s",a);
}
程序的运⾏结果如下所示。
welcome
a=lcome
由此结果可以发现,在键盘上输⼊“welcome”字符串,输出的结果却少了前⾯的两个字符“we”,这就是此修饰符在 scanf( ) 函数中的作⽤,即“*2”表⽰跳过了输⼊字符的前两个字符。输⼊整数⼏就会跳过⼏个字符,若改为“*4”则会跳过前⾯四个字符,只输出显示 a=ome。
三、总结
关于这个格式修饰符,在终端⽂件的读写上很少⽤到,更多的时候会⽤到⽂件的读写操作中。
这篇关于C语言printf( ) 函数和 scanf( ) 函数格式符的修饰符 “*”有什么作⽤?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!