关于sprintf和sprintf_s的问题

KuBabys 2015-10-09 07:48:00
好讨厌这个sprintf_s 以前学VC6的时候都是用sprintf格式化字符串,用了VS2015的版本后sprintf就不可以用了,只能用sprintf_s说这安全性更高,如果是正常的char[]数组格式化就没事通过,当要将char*格式化的时候编译就不通过,只能将char*转换成char[]然后再用sprintf_s,这样就变得好麻烦了,各位大神有木有更简便的方法,或者函数来格式化字符指针……
...全文
430 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 3 楼 珍惜生命远离CPP的回复:
sprintf 本身就是应该禁止使用的东西,这种东西太容易给自己挖坑了。
也不能这么说,但是应该可以让开发人员选择用…
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 4 楼 赵4老师的回复:
#pragma warning(disable:4996)
...
赵4老师,是把这句代码加到代码前面吗?
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 1 楼 w13295350321的回复:
你可以在建项目的时候把安全编译去了。。
具体怎么去掉啊?
赵4老师 2015-10-09
  • 打赏
  • 举报
回复
#pragma warning(disable:4996)
...
  • 打赏
  • 举报
回复
sprintf 本身就是应该禁止使用的东西,这种东西太容易给自己挖坑了。
fefe82 2015-10-09
  • 打赏
  • 举报
回复
1. 你可以定义 _CRT_SECURE_NO_WARNINGS ,然后继续使用 sprintf 2. 你可以用 std::stringstream
无雨的鱼 2015-10-09
  • 打赏
  • 举报
回复
你可以在建项目的时候把安全编译去了。。
dustpg 2015-10-09
  • 打赏
  • 举报
回复
sprintf_s存在第二的参数,表示数组长度, 而且为了易用微软对于数组重载了sprintf_s, 指针的话, 需要手动提供缓存长度, 个人建议使用C99的snprintf, 可以预测缓存长度. 可惜没有自己的需要的snwprintf, 微软的_snwprintf根本就是两回事.
paschen 版主 2015-10-09
  • 打赏
  • 举报
回复
可以用,需要加上_CRT_SECURE_NO_WARNINGS宏 同时也建议用更安全的sprintf_s,因为原来的函数不会考虑是否溢出
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 10 楼 赵4老师的回复:
我就要走在老路上,我就要回到老地方!
你学了编程多久了,看你好像很牛逼啊!
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 8 楼 珍惜生命远离CPP的回复:
[quote=引用 7 楼 weixin_29034637 的回复:] [quote=引用 3 楼 珍惜生命远离CPP的回复:]sprintf 本身就是应该禁止使用的东西,这种东西太容易给自己挖坑了。
也不能这么说,但是应该可以让开发人员选择用…[/quote] 被坑的时候你就不会这么想了[/quote] 个人认为吧!其实微软搞这些函数加s全是为了提高安全性防止数组越界?
KuBabys 2015-10-09
  • 打赏
  • 举报
回复
引用 9 楼 赵4老师的回复:
[quote=引用 6 楼 weixin_29034637 的回复:] [quote=引用 4 楼 赵4老师的回复:]
#pragma warning(disable:4996)
...
赵4老师,是把这句代码加到代码前面吗?[/quote] 理解完全正确![/quote] 谢谢 …
赵4老师 2015-10-09
  • 打赏
  • 举报
回复
我就要走在老路上,我就要回到老地方!
赵4老师 2015-10-09
  • 打赏
  • 举报
回复
引用 6 楼 weixin_29034637 的回复:
[quote=引用 4 楼 赵4老师的回复:]
#pragma warning(disable:4996)
...
赵4老师,是把这句代码加到代码前面吗?[/quote] 理解完全正确!
  • 打赏
  • 举报
回复
引用 7 楼 weixin_29034637 的回复:
[quote=引用 3 楼 珍惜生命远离CPP的回复:]sprintf 本身就是应该禁止使用的东西,这种东西太容易给自己挖坑了。
也不能这么说,但是应该可以让开发人员选择用…[/quote] 被坑的时候你就不会这么想了

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧