%*c %*s printf scanf !!!

说实话,我原来把这两个函数给记错了,导致我在编译的时候出现了严重的错误,为了纪念我的错误,我决定把这个擦操作写一下心得,让我以后不再犯同样的错误。



scanf 和 printf 这两个函数是进行标准输入输出的;


scanf("%*s");

scanf("%*c");

在这里,scanf 函数中的格式声明是不一样的,与原来的不同,只要在%和s或者是c中间加上*(星号) 就代表这

这个格式输入不需要参数,


例如


如果输入 1 a 2

输出结果  1  2


中间的a 就没有给任何的变量,你可以理解为这个a 放在了输入缓冲区中,但是经过 %*c 操作他在输入缓冲区中

剔除了,也可以理解%*c 就是把输入缓冲区中的前一个字母取走了,但是在这里无论你怎么想,都不要忘记

这个操作只能取走一个字母,一个符号,多了是不行的。


scanf ("%*s");

通过上面的分析应该很快的就理解了,这个符号的意思,同是一个scanf 函数,只是一个字母变化了,他们的功能的

相思度应该是很高的,说出他的功能之前,我想先举个例子 :




这是两个不同方式的输入,但是这里面要注意的东西还是比较多的,首先这里的%*s 是代表消除掉输入缓冲区中的

一串字母或者是符号,在这里就不一样了,消除一串,那用什么来标记一串呢,后来发现,和普通的字符串一样

通过空格,回车,来停止读入,这样的方法在这里也是同样适用的。




printf("%*c") 和  printf("%*s");

这两个操作函数一起说就可以,因为功能实在是太像了,由于这是一个输出函数,和之前的输入函数的功能就不一样了,刚才的输入函数,取出的数据都是在输入缓冲区中的,这里的输出函数要进行的是输出操作,所以,他的功能就是和输出相关的

这两个函数和 printf ("%nd");是相似的,前者能控制有一个宽度,后者是不能动态的控制宽度的,

例如 :


其实这个printf 函数还有这样的用法呢!!!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值