| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1504 人关注过本帖
标题:诡异的代码,char 中 scanf %2c,总是取到第四个字符,求大神解。。。
只看楼主 加入收藏
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 8楼 rjsp
大神指的是,scanf(%2c%3c 对应的char必须是字符串才合理么? 字符的话,会出错是么?
2015-11-09 15:01
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:4 
图片附件: 游客没有浏览图片的权限,请 登录注册

编译器是visual c++ 6.0
2015-11-09 20:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 11楼 随风的飞叶
再説一遍:這種做法是錯的。

授人以渔,不授人以鱼。
2015-11-10 15:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用wangnihang在2015-11-9 15:01:13的发言:

大神指的是,scanf(%2c%3c 对应的char必须是字符串才合理么? 字符的话,会出错是么?
我从微软的msdn中找到两个代码片段
char c;
scanf("%c", &c);
char c[4];
scanf("%4c", c);

没仔细找,还是看C标准是怎么说的吧
1 if no field width is present in the directive
也就是 %c 其实等同于 %1c
the corresponding argument shall be a pointer to the initial element of a character array large enough to accept the sequence.
数组应当足够大,大到能容纳下该序列。
No null character is added.
尾部不添加'\0'


2015-11-10 15:48
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 10楼 TonyDeng
T老师,我是在百度传课上自学的一些C语言基础,很不扎实,另外发现上课讲的很多代码,即使原样copy到xcode,都显示不同的结果。不知道是不是网络课程不太严谨。
求教,我应当如何学习C语言比较扎实。
另外Xcode没有单步调试,是不是也不太利于学习。
真的挺想学学好的,T大大,请给些指导吧。。。
2015-11-16 00:34
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 14楼 rjsp
我有点明白,不过这个案例,可能是网路传课的老师,为了帮助我们更深入理解%2c的一些作用,故意破坏C的标准逻辑,写出的异常情况吧
2015-11-16 00:37
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 14楼 rjsp
谢谢这么详细的回复
2015-11-16 00:38
LIJUN1025
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-11-3
收藏
得分:0 
楼主  我这输出的是
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-11-22 11:55
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
收藏
得分:0 
我就挺不明白为啥在scanf()中为啥要修饰%c呢?要加也要加在printf()中,学习C不就是学习C的结构吗?

I'm a new comer
2015-11-22 17:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用邹阳在2015-11-22 17:08:32的发言:

我就挺不明白为啥在scanf()中为啥要修饰%c呢?要加也要加在printf()中,学习C不就是学习C的结构吗?

在scanf()中這樣有用到的時候,但不是他那麽用。

授人以渔,不授人以鱼。
2015-11-22 17:33
快速回复:诡异的代码,char 中 scanf %2c,总是取到第四个字符,求大神解。。。 ...
数据加载中...
 
   



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

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