社区
C语言
帖子详情
这是scanf的漏洞吗?
xliu2019
2003-09-12 05:51:45
char ss[10],ch;
scanf("%s%ch",ss,ch);
为什么得不到ch 的预想值,无论ss和ch 用回车还是空格分开?
...全文
109
11
打赏
收藏
这是scanf的漏洞吗?
char ss[10],ch; scanf("%s%ch",ss,ch); 为什么得不到ch 的预想值,无论ss和ch 用回车还是空格分开?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Aofa_lee
2003-09-14
打赏
举报
回复
我想说的他们都说完了!
gogo528
2003-09-14
打赏
举报
回复
ch怎么能够用来表示数据类型呢?
在scanf中,%后面跟的是数据类型而不是变量名啊!
所以应该是:scanf("%s %c",ss,&ch);才对呀!
swtju94_2
2003-09-12
打赏
举报
回复
up
tuxw
2003-09-12
打赏
举报
回复
scanf("%s%ch",ss,&ch); 加个h也不犯法呀
scanf("%s%c",ss,&ch); 这样还是得不到正确结果的
关键在scanf需要给出明确的分隔符,用一个空格分开格式符是个好习惯
scanf("%s %c",ss,&ch); 这样输入时就可以用空格或回车分开各个操作数了
tianjieshui
2003-09-12
打赏
举报
回复
char ss[10],ch;
scanf("%s%c",ss,&ch);
%c是格式控制 不能写成%ch
locky1982
2003-09-12
打赏
举报
回复
scanf("%s%ch",ss,&ch);
这样应该就可以
晨星
2003-09-12
打赏
举报
回复
学习。
鄢老
2003-09-12
打赏
举报
回复
"arfi()"说的很对,其实scanf在调用的时候,先调用的是数组和变量的地址,然后通过他们的地址找的他。所以才有了"&ch",至于存在"ss",是因为"ss"本身表示的是字符串的首地址。
arfi
2003-09-12
打赏
举报
回复
scanf("%s%*c%c",ss,&ch);
晨星
2003-09-12
打赏
举报
回复
char ss[10],ch;
scanf("%s%c",ss,&ch);
mahu213
2003-09-12
打赏
举报
回复
不对吧。
scanf的格式不允许这样啊!
应该是这样的:
scanf("%s%c",ss,ch);
深入分析C中不安全的sprintf与strcpy
经过跟踪调试, 发下不少 bug 源于 sprintf 和 strcpy 之类可能造缓冲区溢出的函数. 应该将所有的 sprintf 用 snprintf 替换.将 strcpy 用 strncpy 替换, 并且将末尾字节设置为 ”\0′ . 代码如下:strncpy(buf, str, len);buf[len] = 0; 您可能感兴趣的文章:浅析C语言中printf(),sprintf(),
scanf
(),s
scanf
()的用法和区别基于C语言sprintf函数的深入理解C++中sprintf()函数的使用详解基于C++中sprintf的错
C语言实现双向链表
这个小代码是我凭自己对指针和链表的理解和认识,自己实现的,没有参考其他人的代码,如果有相同的地方,那真的只是巧合,代码我在ubuntu 15.04下测试通过,可能存在很多错误和
漏洞
. doublelist.c /************************************************************************* > File Name: doublelist.c > Author: ChenYiLiang > Mail: chenyiliangex@163.com > Created Time: Sat 21 Mar 2015 0
格式输出函数
scanf
()
漏洞
scanf
()读数据先把数据放到缓冲区,缓冲区会读输入的\n 空格等,造成下一个字符误读。
scanf
函数缺陷和处理方法
scanf
函数缺陷及解决方案 C变量 Char:字节型数据,一个char型占一个字节,在命名时用英文单引号引起来。 Int:整形数据,占4个字节(一个字节占8个bit位) Float:单精度数据,占4个字节。 Double:双精度数据,占8个字节。 .输出输入 输出函数:printf,printf函数可以输出不同类型的数据,如整型,float,double,char等,其一般格式为:printf(“%?”,??); 他的意思时把??的数值给%?这个占位符,从而达到输出??数据的目的。 输入函数:
scanf
函
scanf
的用法大全
索引:1、
scanf
函数的一般形式2、附加格式说明字符表修饰符说明3、问题一:
scanf
()函数不能正确接受有空格的字符串?4、
scanf
()函数如何结束数据的输入5、问题二:键盘缓冲区残余信息问题6、问题三: 如何处理
scanf
()函数误输入造成程序死锁或出错?7、%[ ] 的用法=========================================================...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章