| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11583 人关注过本帖
标题:scanf("%2d%*2s%2d",&x,&y); /*这行不懂,求教*/
只看楼主 加入收藏
新手而已
Rank: 2
等 级:论坛游民
帖 子:35
专家分:55
注 册:2013-3-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
scanf("%2d%*2s%2d",&x,&y); /*这行不懂,求教*/
main()
{
    int x,y;
    scanf("%2d%*2s%2d",&x,&y);  /*这行不懂,求教*/
    printf("%d",x+y);
}
程序执行时从键盘输入:1234567
输出答案:68


结果怎么的出来的?
搜索更多相关主题的帖子: 键盘 
2013-06-03 17:27
sdhle
Rank: 2
等 级:论坛游民
帖 子:27
专家分:10
注 册:2013-1-5
收藏
得分:9 
%2s表示读取一个长度为两个字符的字符串,中间的*表示将读取到的字符串忽略
2013-06-03 17:40
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
收藏
得分:9 
在scanf语句中%*s,在c语言中的说明是 该处的*表示忽略该处的变量输入。
还是看一下下面的程序说明吧:

#include"stdio.h"
int main()
{
    int a,b;
    scanf("%2d%*2s%d",&a,&b);
    printf("\na=%d,b=%d\n",a,b);
    return 0;
}

运行结果:
输入:12345678
输出:a=12,b=5678

输入:123456
输出:a=12,b=56

那么,就说明在该处,%*2s表示忽略2个字符的输入。注意这里要是输入是小于4位数的数字的话,程序是不能继续运行的,需要输入大于4位的数字,这个由scanf分析可以得到。
2013-06-03 18:11
verygoodcome
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2013-3-29
收藏
得分:1 
楼上正解!
2013-06-04 12:44
shaosuqiang
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2013-5-5
收藏
得分:1 
%*2s表示接受两个数字,但是不赋给任何变量,即跳过了34.
x=12;y=56;
2013-06-04 16:52
玫瑰罗
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-11-1
收藏
得分:0 
太好了,真不错
2017-11-01 19:41
快速回复:scanf("%2d%*2s%2d",&x,&y); /*这行不懂,求教*/
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023214 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved