如何理解 scanf("%*s,str")?

最近在看《C Primer Plus(第五版)》,有这么一行代码:

scanf("%*s");//书中解释作用是跳至下一空白符

本文对网上的一些解释进行汇总整理,主要参考的网址有:
[1]http://bbs.csdn.net/topics/390389078
[2]https://zhidao.baidu.com/question/526983012.html
[3]https://zhidao.baidu.com/question/475547421.html
* 是scanf()函数中的一种修饰符(《C Primer Plus(第五版)》P79),表示滞后赋值,通俗理解为输入项输入后不转送给任何数据。
%s表示从缓冲区读入一个字符串,遇到空格或者回车就结束。
这里表示当前的一个字符串输入后不送给任何变量,跳到下一个空白处(包括空格、回车等)

scanf("%*s",str);//*在这里为跳过的意思,意为把从键
                 //盘输入的字符串忽略掉,不放入变量str中!

举个具体例子:

int n;
scanf("%*d %*d %d",&n);
printf("%d",n);
return 0;
//输入的是1 2 3,那么输出的是3,因为前两个已经忽略啦。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值