社区
C语言
帖子详情
请给位看下这个关于C语言的问题,有点困惑
zhangbencheng
2012-10-28 04:26:20
#include<stdio.h>
void main()
{
char s[100];
int c,i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
输入123空格456空格789
输出1,23,456
这是怎么回事啊!
...全文
142
5
打赏
收藏
请给位看下这个关于C语言的问题,有点困惑
#include void main() { char s[100]; int c,i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s\n",c,i,s); } 输入123空格456空格789 输出1,23,456 这是怎么回事啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w3562163
2012-10-29
打赏
举报
回复
%c是接收char类型的数据,接收一个字符,结是输出1,23,456
wengdunliang
2012-10-29
打赏
举报
回复
%c改成%d
%c是接收char类型的数据,你输入的1被当做char储存,所以i只能接收剩下的23,然后s接收456。
jiemo1123
2012-10-29
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
scanf输入的东西会先放在键盘缓冲区内,然后变量赋值要看输入数据是否与前面的格式匹配,不匹配就直接跳过,看后面是否有匹配的,1匹配%c,23匹配%d,456匹配%s,注意,123和456中间的空格,与前后不匹配,所以就被直接抛弃了,这也解释了,为什么789没有读入,因为前面有个空格
[/Quote]
缓冲区没有没清除掉,可以用getchar()函数吸收缓冲区的内容,window下的话也可以用fflush(stdin)函数
cooloyty
2012-10-28
打赏
举报
回复
scanf输入的东西会先放在键盘缓冲区内,然后变量赋值要看输入数据是否与前面的格式匹配,不匹配就直接跳过,看后面是否有匹配的,1匹配%c,23匹配%d,456匹配%s,注意,123和456中间的空格,与前后不匹配,所以就被直接抛弃了,这也解释了,为什么789没有读入,因为前面有个空格
lxmuyu
2012-10-28
打赏
举报
回复
你第一个scanf("%c",&c);读了一个字节放到变量c里面,然后23放到i里面,456放到了s里面
你必须知道的495个
C语言
问题
1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么
问题
。这是为什么? 1.29 为什么我的编译器不允许我定义大数组,如doublearray[256][256]? 命名空间 1.30如何判断哪些标识符可以使用,哪些被保留了...
c语言
编程常见
问题
解答
本章主要描述
C语言
一些基本要素。当你开始编写C程序时,你可能对
C语言
的一些基本
问题
感到
困惑
,如
C语言
所使用的约定、关键字和术语等。本章将回答这方面你经常会遇到的一些
问题
。
Java语言基础篇
在Java诞生的不到30年时间里,Java开发人员的市场需求已经增长到了一个非常惊人的程度,至少目前来看,没有任何一门开发技术能够和java比,从待遇方面,高级Java开发人员的薪资也是相当的高,大概只有c++能够和Java...
C语言
试题汇总200例目录
锻炼您的逻辑思维和解决
问题
的能力,帮助你成为
C语言
笔试、机试解题高手,帮助你拿到
C语言
工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何
困惑
,妈妈再也不担心我的
C语言
了。如果程序有任何看不懂...
C语言
答疑解惑
c语言
小
困惑
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章