c语言中%*s的作用,c语言中 scanf("%*s"); 的具体意思,

用户提问

我想弄清楚scanf("%*s"); 具体含义,

见如下代码,我想在输入后,程序排除不必要的输入,

变量ch正确输入后应该会有个\n在输入队列中。

变量x,y输入后应该有2个\n在输入队列中。

为什么ch正确输入后遇到scanf("%*s"); 还是需要再次输入,而x,y输入后就不需要。请问原因。

不胜感激!

#include

//void chline(char,x,y);

int main(void)

{

char ch;

int x,y;

int n;

printf("enter char\n");

while((ch=getchar()) == '\n')

continue;

printf("ch = %c\n",ch);

scanf("%*s");

printf("enter 2 number\n");

while(scanf("%d%d",&x,&y) != 2)

{

scanf("%*s");

printf("Please enter 2 number:\n");

}

printf("ch = %c, x = %d,y = %d.\n",ch,x,y);

return 0;

}

推荐答案

scanf("%*s")表示跳至下一空白字符,这里主要是中间的*字符起的作用。比如:

int n;

scanf("%*d %*d %d",&n);

printf("%d",n);

return 0;

如果输入的是1 2 3,那么输出的是3,因为前两个已经忽略啦。

辅助答案

用户:这是一个神奇的男人

2017年11月13日

scanf("%*s"); 这个是输入是跳过 一个*

也就是

当你输入一个* 这个星号会跳过而不获取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值