| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1504 人关注过本帖
标题:诡异的代码,char 中 scanf %2c,总是取到第四个字符,求大神解。。。
只看楼主 加入收藏
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:19 
诡异的代码,char 中 scanf %2c,总是取到第四个字符,求大神解。。。
初学者,碰到难题,求大神帮忙。

输入的代码是:

#include <stdio.h>

int main()
{
    char c1,c2;
    scanf("%2c%3c",&c1,&c2);
    printf("%c%c\n",c1,c2);
}

输出的是:

abcde
DC
Program ended with exit code: 0

但我翻看各种课件及网络答案,应该是 AC,不知道究竟哪里的代码写错了,请帮助。。。

[local]1[/local]

[此贴子已经被作者于2015-11-9 12:19编辑过]

搜索更多相关主题的帖子: include 
2015-11-09 12:18
li459461891
Rank: 2
等 级:论坛游民
帖 子:27
专家分:89
注 册:2015-11-5
收藏
得分:4 
少年,不知道你用的啥编译环境,我这边VS2010,结果是ac 虽然还报错了。
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-11-09 12:51
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 2楼 li459461891
额,谢谢大神啊,我是初学者。用的mac本,所以xcode Version 7.1 (7B91b)。
建的 osx application -》command line tool -》 language C,

这个会有问题哇?
2015-11-09 13:08
li459461891
Rank: 2
等 级:论坛游民
帖 子:27
专家分:89
注 册:2015-11-5
收藏
得分:0 
回复 3楼 wangnihang
我也不是大神呐,我对苹果系统也不熟悉啊。。。所以这个问题我母鸡呀

另外:我看到的大部分都是用windows或者linux学C的。
mac C的资料可能不如windows下的多。
2015-11-09 13:38
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
不知道你想干嘛   scanf为啥还要用修饰符

DO IT YOURSELF !
2015-11-09 13:42
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 5楼 wp231957
额,我是看网络课程,一段代码,
说明char字符下面,scanf("%2c%2c",&a,&b) 会实际抓取的内容

而后在xcode上实验一下,结果出现这个错误~。

在考虑换一台pc来学C吧— —||
2015-11-09 13:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
錯是正常的,說能過的都在誤導你。

授人以渔,不授人以鱼。
2015-11-09 14:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:4 
程序代码:
#include <stdio.h>

int main( void )
{
    char c1[2], c2[3];
    scanf( "%2c%3c", c1, c2 );
    printf( "%.2s - %.3s\n", c1, c2 );
}
输入
123456789
输出
12 - 345

2015-11-09 14:50
wangnihang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-9
收藏
得分:0 
回复 7楼 TonyDeng
求解,哪里错了呢
2015-11-09 14:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
%2c是讀2個字符到指定地址處,你連著2個%2c當然忠實地按指示讀4個字符。你分配的總空間衹有2字符,溢出報運行時錯。

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



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

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