Visual Studio错误:“strcpy 您所在的位置:网站首页 vs函数调用中的参数太少了 Visual Studio错误:“strcpy

Visual Studio错误:“strcpy

2024-05-20 05:13| 来源: 网络整理| 查看: 265

您正在使用strcpy_s,这是strcpy的一个专门版本,它执行额外的错误检查,并且只需要3个参数:

errno_t strcpy_s(char *dest, rsize_t dest_size, const char *src);

我想你真的不需要这个。改用标准strcpy函数:

strcpy(&string[position], &string[position + 1]);

注意:对于scanf_s也是一样,如果你没有充分的理由说明scanf_s可能对你更有用,请使用scanf。

正如代码::块编译代码的原因一样,它可能只是生成了一个警告,而不是一个中止编译的错误。

好的,事实证明MSVC在这方面特别迂腐,不喜欢好的ol(更快更简单)标准函数。

我改为strcpy,但Visual studio现在给我这个错误:'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

您有两种选择:

禁用该检查,请参阅此相关问题和答案:如何使用_CRT_SECURE_NO_WARNINGS。基本上只需将其添加到文件的顶部(在任何#include之前):#define _CRT_SECURE_NO_WARNINGS 以正确的方式使用strcpy_s(同样,首先检查position < 80,否则您的替换无效):strcpy(&string[position], 81 - position, &string[position + 1]); ,不要忘记检查返回值!

最后,当我们这样做时,使用gets(string)总是错误的。永远不要使用gets()。真的很惊讶MSVC没有警告你这一点。使用fgets:

fgets(string, 81, stdin);


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有