我有一段由 Dev C++ 正确编译的代码。当我尝试使用 VS2012 express 执行它时,我遇到了这个警告“警告 C4996:”:这个函数或变量可能不安全。考虑改用 strtok_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。详情请参见在线帮助''
我试图禁用安全警告,但我发现 _CRT_SECURE_NO_WARNINGS 选项在我的 VS express 中不可用。所以我不得不修改我的代码以使用 strtok_s 而不是 strtok 以避免这个警告。但是,即使代码执行到最后没有任何错误,也出现了错误,结果没有出现。显然没有读取文件发生。这是以前在 Dev C++ 上运行良好的代码
const char* token[MAX_TOKENS_PER_LINE] = {}; // initialize to 0
// parse the line
token[0] = strtok(buf, DELIMITER); // first token
if (token[0]) // zero if line is blank
{
for (n = 1; n < MAX_TOKENS_PER_LINE; n++)
{
token[n] = strtok(0, DELIMITER); // subsequent tokens
if (!token[n]) break; // no more tokens
这就是我尝试使用 VS2012 express 执行的操作
const char* token[MAX_TOKENS_PER_LINE] = {}; // initialize to 0
char* next_token[MAX_TOKENS_PER_LINE] = {}; // initialize to 0
//char* next_token;
// parse the line
token[0] = strtok_s(buf, DELIMITER, &next_token[0]); // first token
if (token[0]) // zero if line is blank
{
for (n = 1; n < MAX_TOKENS_PER_LINE; n++)
{
token[n] = strtok_s(0, DELIMITER, &next_token[n]); // subsequent tokens
if (!token[n]) break; // no more tokens
第二个代码有什么问题?