我有一段代碼已正確由Dev C++編寫。當我試圖用VS2012 express執行它時,我遇到了這個警告''警告C4996:'':這個函數或變量可能是不安全的。考慮使用strtok_s代替。要禁用棄用,請使用_CRT_SECURE_NO_WARNINGS。詳情請參閱聯機幫助''strtok_s安全調試警告解決
我試圖禁用安全警告,但是我發現_CRT_SECURE_NO_WARNINGS選項在我的VS express中不可用。所以我不得不修改我的代碼以使用strtok_s而不是strtok來避免此警告。但是,即使代碼執行到最後也沒有任何錯誤,但出現結果不出現的問題。顯然沒有閱讀文件發生。這是以前的代碼上開發的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表達
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
什麼是錯的第二個代碼?
'_CRT_SECURE_NO_WARNINGS'肯定可用。你只需要知道它是一個宏,你必須在包含第一個Microsoft頭之前定義它。任何Visual Studio版本都沒有好的複選框。 – MSalters 2013-05-02 11:15:02