VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 232|回复: 2

[已解决]实用C++》第21课 中,使用 strcat 连接字符串函数 出错问题

[复制链接]
63_avatar_middle
最佳答案
1 
donate_vip 发表于 2019-10-18 15:16:07 | 显示全部楼层 |阅读模式
2、字符串连接函数:strcat
char des[50] = "hello "; //保证des的空间足够大
char src[] = "cctry.com";
strcat(des, src);
cout << "des = " << des << endl;

编译时提示:
This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details
翻译内容:
此函数或变量可能不安全。请考虑使用strcat_s。要禁用禁用,use_crt_secure_no_警告。有关详细信息,请参见联机帮助

那么请问老师或同学,使用 strcat_s 可以吗?与strcat有什么不同?
最佳答案
81_avatar_small
2019-10-18 15:33:09
safeboy 发表于 2019-10-18 15:24
也可以通过 添加一个宏定义 来解决

在编译器给出的错误提示中,实际上已经为我们给出了一个明确的解决方 ...

原因正解!




上一篇:MFC继承类
下一篇:分割窗口后运行总会弹出“new”对话框
63_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2019-10-18 15:24:58 | 显示全部楼层
本帖最后由 Debug 于 2019-10-18 15:32 编辑

也可以通过 添加一个宏定义 来解决

在编译器给出的错误提示中,实际上已经为我们给出了一个明确的解决方案。我们只需要在程序的开头添加一个宏定义便能够解决问题。

#define _CRT_SECURE_NO_WARNINGS
1
加入宏定义后,源代码变为如下形式

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    char c[20];
    scanf("%s", c);
    puts(c);
    return 0;
}

虽然按照上述的方法能够顺利解决问题,但是在实际的应用中,如果我们要求只能够使用标准库中的函数,而不能使用VS为我们提供的改进函数。那么我们每次在使用到相关函数时,都需要在文件前面,或者在头文件中添加相关宏。这样未免太麻烦。
既然我们不需要VS给我们提供的这个多余的改变,那有没有一个一劳永逸的办法解决这个问题呢。
方法是有的,这需要我们对VS的项目属性进行设置,具体步骤如下。

在项目属性设置中找到选项卡 配置属性→C/C++→预处理器;
在右侧的参数中找到预处理器定义,编辑其参数;
在参数的末尾添加定义_CRT_SECURE_NO_WARNINGS

这样,在编译器进行预处理时,预处理器就会自动在程序开头添加我们需要的宏定义,而不再需要我们手动添加。
在文件中不添加宏定义的情况下,再次进行编译。发现编译顺利完成。
这种方案因为修改的是项目的配置参数,因此适用于整个项目。在该项目中,将不再需要添加相关宏定义。但是其他项目自然不受该设置的影响,因此,如有需要,在其他项目中需要再次进行相同配置才能生效。
————————————————
版权声明:本文为CSDN博主「夏蒼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012534008/article/details/54602774
81_avatar_middle
最佳答案
3 
online_supermod 发表于 2019-10-18 15:33:09 | 显示全部楼层    本楼为最佳答案   
bestAnswer
safeboy 发表于 2019-10-18 15:24
也可以通过 添加一个宏定义 来解决

在编译器给出的错误提示中,实际上已经为我们给出了一个明确的解决方 ...

原因正解!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-30 00:43

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表