社区
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
这是怎么回事啊!
...全文
151
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
作业
写回复
配置赞助广告
用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语言
所使用的约定、关键字和术语等。本章将回答这方面你经常会遇到的一些
问题
。
郭天祥51单片机
C语言
教程配套光盘
6. 常见
问题
解答:针对学习过程中可能遇到的
问题
,郭天祥可能会提供解答或提示,帮助读者解决
困惑
。 7. 其他学习资料:比如电路设计图、相关文献、论坛链接等,为读者提供更广泛的学习资源。 学习51单片机
C语言
,...
C语言
试题汇总200例目录
锻炼您的逻辑思维和解决
问题
的能力,帮助你成为
C语言
笔试、机试解题高手,帮助你拿到
C语言
工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何
困惑
,妈妈再也不担心我的
C语言
了。如果程序有任何看不懂...
C语言
排名第一,醒醒吧,这个第一很难找工作的
作为一个有十多年行业经验的人,我深知
C语言
的重要性。...我对前两个
问题
没有
困惑
: 1.
C语言
是一个非常优秀的语言,这个世界仍然运行在
C语言
之上! Windows系统,Mac系统,Linux系统的大部分模块都是
C语言
C语言
70,026
社区成员
243,262
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章