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

我想弄清楚scanf("%*s");具体含义,见如下代码,我想在输入后,程序排除不必要的输入,变量ch正确输入后应该会有个\n在输入队列中。变量x,y输入后应该有2个\n... 我想弄清楚scanf("%*s"); 具体含义,
见如下代码,我想在输入后,程序排除不必要的输入,
变量ch正确输入后应该会有个\n在输入队列中。
变量x,y输入后应该有2个\n在输入队列中。
为什么ch正确输入后遇到scanf("%*s"); 还是需要再次输入,而x,y输入后就不需要。请问原因。
不胜感激!

#include<stdio.h>
//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;
}
展开
 我来答
gao5521036
高粉答主

2019-11-13 · 醉心答题,欢迎关注
知道小有建树答主
回答量:7225
采纳率:83%
帮助的人:564万
展开全部

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

吉祥二进制
高粉答主

推荐于2017-10-13 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84562

向TA提问 私信TA
展开全部

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

        int n;
    scanf("%*d %*d %d",&n);
    printf("%d",n);
    return 0;

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenfenggang99
2014-05-18 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1718万
展开全部
scanf("%*s"); 这个是输入是跳过 一个*
也就是

当你输入一个* 这个星号会跳过而不获取。
追问
1.如果我输入空格,回车,制表符呢?
2.为何在变量ch输入后与变量x,y输入后产生的结果不一样?
追答
先输入一个字符  

然后输入 *
再输入两个字符
这样就与x,y相同了

程序必须获取*才会往下走,否则 会不动
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式