社区
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
这是怎么回事啊!
...全文
218
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里面
漫谈
C语言
指针入门
本文深入浅出地解释了
C语言
中的指针概念,指出了指针并不难于理解的本质,即指针是一种用于存储内存地址的特殊变量。文章通过实例演示了如何定义和使用指针,帮助初学者更好地掌握这一核心概念。
C语言
中scanf函数的宽度修饰
问题
作者在学习
C语言
scanf函数时遇到
困惑
,理论描述与实际Dev-C++和VS2022的结果不符,涉及内存地址和宽度修饰。作者寻求解释,可能涉及编译器行为差异。
C语言
指针学多了,你为什么会觉得晕?
本文深入剖析
C语言
中指针概念让人
困惑
的原因,通过对比普通变量与指针变量,揭示了指针学习中常见的难点,并提供理解指针的实用技巧。
C语言
for循环语句及嵌套(误区,易错点要理解)
本文详细介绍了
C语言
for循环的常见误区,包括循环体的花括号使用对程序结果的影响,以及循环嵌套的理解。同时,通过例题解析了continue关键字的使用,强调了它如何结束当前循环而非整个循环。文章适合
C语言
初学者,旨在帮助他们更好地理解和避免编程中的常见错误。
【给嵌入式新人的几条建议(共勉):三-
C语言
基础怎么补?】
本文针对嵌入式新人在
C语言
学习上的
困惑
提供指导,分析常见误区并给出针对性建议,包括如何快速梳理
C语言
基础知识脉络、克服心理障碍、实践编程等。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章