当前位置: 首页 > news >正文

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。

三、总结

        关于这个格式修饰符,在终端⽂件的读写上很少⽤到,更多的时候会⽤到⽂件的读写操作中。

http://www.lryc.cn/news/366914.html

相关文章:

  • java 使用WebClient发送https请求
  • Python 中的内存管理机制
  • Mac电脑重置网络命令
  • C++期末复习总结(2)
  • [word] word大括号怎么打两行 #其他#其他#微信
  • 【python】python指南(二):命令行参数解析器ArgumentParser
  • 香橙派 Orange AIpro 测评记录视频硬件解码
  • 四天工作制,比你想象的更近了一点
  • (UE4.26)UE4的FArchive序列化入门
  • Inpaint9.1软件下载附加详细安装教程
  • Unity 集成 FMOD 音频管理插件 2.02
  • Linux下线程的互斥与同步详解
  • 【栈】736. Lisp 语法解析
  • 什么时候用C而不用C++?
  • unix环境编程编程扫描版:深度解析与实践指南
  • 2024年6月8日 每周新增游戏
  • AI提示词Prompts有没有好公式?( 计育韬老师高校公益巡讲答疑实录2024)
  • 一个 buffer 使用的负反馈实例
  • 小程序简单版录音机
  • 苹果手机微信如何直接打印文件
  • 51.线程池大小
  • Python | 开房门(map)
  • MATLAB 函数 function
  • 基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道
  • 9行超强代码用Python工具快速获取放假日期
  • Elastic Search(ES)Java 入门实操(2)搜索代码
  • Hudi Spark Sql Procedures 回滚 Hudi 表数据
  • 【重学C语言】十九、SDL2 图形化编程的使用
  • 什么是电风扇行情?
  • pytho入门教程