社区
C语言
帖子详情
scanf_s的一个问题
weiqiyiji
2008-04-19 06:42:45
main() {
char c[30];
printf("Enter some characters:\n");
scanf_s("%s", c);
printf("%s\n", c);
}
我用scanf_s读取输入的字符后,没办法打印出任何东西,把scanf_s改回scanf就可以
这是为什么?
...全文
1072
11
打赏
收藏
scanf_s的一个问题
main() { char c[30]; printf("Enter some characters:\n"); scanf_s("%s", c); printf("%s\n", c); } 我用scanf_s读取输入的字符后,没办法打印出任何东西,把scanf_s改回scanf就可以 这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuguangzhu
2012-02-19
打赏
举报
回复
scanf_s("%s", c,sizeof(c));
这样就可以了 scanf_s 是scanf的安全版,检查内存边界,所以你需要提供一个边界的长度
Youngyang6
2010-05-15
打赏
举报
回复
你把 scanf_s("%s", c); 改成 scanf_s("%s", c,30); 这样就没问题了。。
由于scanf不安全,vc++2005/2008中提供了scanf_s(),在调用时,必须提供一个数字以表明最多读取多少位字符。 正如上面所改。
Youngyang6
2010-05-15
打赏
举报
回复
前面1-8楼的回答真垃圾,看问题没有啊??纯粹是为了得分进来的??这是论坛,答疑解惑的地方!晕~
我也遇到了这样的问题,楼主要是知道为什么,通知我一下啊!!谢了!!
我猜是一个bug。。谁知道呢。。
harrymwz1
2009-10-06
打赏
举报
回复
scanf_s更安全
meiZiNick
2008-04-30
打赏
举报
回复
接分是王道!
morre
2008-04-19
打赏
举报
回复
首先,_s 类是针对内存泄露的安全问题,所以为VS2005所推荐.
其次,注重scanf_s,wscanf_s函数后必须有数字,表示最多输入多少位(不是字节数),假如没有的话就相当于0,假如输入的字符超出范围,输出时就是空,得不到正确结果.
用户 昵称
2008-04-19
打赏
举报
回复
那msdn里面有没有说别的呢?可能有一些宏定义或选项得用上。
weiqiyiji
2008-04-19
打赏
举报
回复
我在网上搜的时候说
这是msdn里面推荐的
更安全
l999358
2008-04-19
打赏
举报
回复
没见过。。。。。。
scanf()
sscanf()
这我都见过,就你这个,有才!
weiqiyiji
2008-04-19
打赏
举报
回复
vc2005里面就建议用scanf_s
用户 昵称
2008-04-19
打赏
举报
回复
scanf_s?
C语言入门到高阶-- printf、
scanf
与 CGI 文件重定向
尹成老师,带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯、黑客劫持技术、网络安全、加密解密,以及各种精彩的小项目等,非常适合大家学习!帮助大家快速入门C语言,一步步的成为C语言高手。
C语言
scanf
_s()函数的用法
C语言
scanf
_s()函数的用法 前言 今天开始学习C语言,看书学的挺快的,感觉也不能,就想着敲下代码,结果错误百出,差点不想学了,果然编程是敲会的。下面说说第
一个
程序遇到的
问题
与心得
scanf
_s()前身——
scanf
() 有的教材里用的
scanf
(),其实在目前Visual Studio版本中已经弃用了,用
scanf
_s()函数代替了。
scanf
()既然已经被替代了我就不多说了。 为什么现...
c语言
scanf
_s函数详解,
scanf
_s()函数
scanf
_s()或
scanf
()函数从标准输入读取数据,并根据格式控制字符串中的格式说明符将它们转换为
一个
或多个值。
scanf
_s()函数的原型如下:int
scanf
_s(const char * restrict format, . . . );
scanf
()函数也有
一个
类似的原型。
scanf
()和
scanf
_s()之间的区别是:后者需要两个参数,每个输入数据由c,s和[说明符,前者只需要一...
scanf
与
scanf
_s函数的使用 详解
1.
scanf
_s(是vs提供的函数) a.代码1 int main() { char a = 0; //
scanf
_s("%c", &a, 1);
scanf
_s("%c", &a, sizeof(a)); return 0; }
scanf
_s有三个参数,最后
一个
是变量a所占据空间的大小(单位为字节),这里可以写1,也可以写sizeof(a)。如果a为整型的话,第三个参数就为4,或者sizeof(a)。 b.代码2 int main() { char a =
scanf
()与
scanf
_s()的区别
scanf
() 函数 :
scanf
() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。 其调用格式为:
scanf
("<格式化字符串>",<地址表>)。
scanf
_s()函数:
scanf
_s() 的功能虽然与
scanf
() 相同,但却比
scanf
() 安全,因为
scanf
_s() 是针对“
scanf
()在读取字符串时不检查边界,可能会造成内存泄露...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章