c++ - 使用 C++ strtk 会导致 xutility 错误 C4996

标签 c++ string

所以我正在做一个小项目来进入 C++,其中一部分是读取数据并将数据写入文件。我选择了我所知道的最简单的路线,即将对象的各种属性转换为一串整数。需要明确的是,我正在使用一个对象“Day”,它具有关于我一天的各种属性( sleep 分钟数、运动分钟数等)。我目前有以下代码片段:

string Day::writeAsData()
{
    // Writes the day as a condensed machine-readable format:
    // {rawTime,busyMinutes,sleepMinutes,productivity,enjoyment,fatigue,weight,calories}
    // e.g. {1444316982,645,360,7,4,5,180,0}
    string dataString = "{"
        + to_string(rawTime) + ","
        + to_string(busyMinutes) + ","
        + to_string(sleepMinutes) + ","
        + to_string(productivity) + ","
        + to_string(enjoyment) + ","
        + to_string(fatigue) + ","
        + to_string(weight) + ","
        + to_string(calories)
        + "}";

    return dataString;
}

以清晰的机器可读格式写入数据。我正在开发一个伴随函数以从字符串中获取数据并适本地设置 Day 对象的值。我找到了C++ String Toolkit Library ,我想使用它的 parse() 函数。但是,添加

#include "strtk.hpp"

我的包含列表最终会在构建中抛出一个 Spanner 。去掉这条线,我得到了一个干净而成功的构建。但是,添加该行会导致

Error   C4996   'std::_Fill_n': Function call with parameters that may be unsafe - this 
call relies on the caller to check that the passed values are correct. To disable this 
warning, use -D_SCL_SECURE_NO_WARNINGS.

在 xutility 的第 2811 行。我不在代码中的任何地方使用 std::Fill_n。

到目前为止,我发现 String Toolkit 使用了 Boost 库,这些库已放在我的 include 目录中。我尝试添加

#define D_SCL_SECURE_NO_WARNINGS 1

到我的 Day.cpp 文件和我的 Day.h 文件,但都没有做任何事情。我无法将它添加到 xutility,因为该文件是只读的。如何禁用警告或解决问题?

最佳答案

首先,您的#define 不正确,应该是:

#define _SCL_SECURE_NO_WARNINGS

更多细节在这里: MSDN: _SCL_SECURE_NO_WARNINGS

这里: What does "use -D_SCL_SECURE_NO_WARNINGS" mean?

其次,如果您使用的是 Visual Studio(我假设您是),您可以使用 Preprocessor Definitions 下的项目设置为整个项目定义 _SCL_SECURE_NO_WARNINGS

关于c++ - 使用 C++ strtk 会导致 xutility 错误 C4996,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231017/

相关文章:

c++ - C 风格字符串、指针、数组

java - 字符串比较没有返回正确的答案

c++ - 如何减少 abs 函数的数量

c++ - 从文件读取时无法使用 getline

c# - 从 C# 调用 C++ 代码

mysql - mysql 中计算字符串形式的列名

python - 从 Treeview 中选择自动将字符串数字转换为整数

c++ - 动态依赖 lib/tls 搜索路径

c++ - 从 Qt 开始 - QGraphicsView 和 QGraphicsScene

java - 逐行比较文本文件与动态变量