Dev C++ によって正しくコンパイルされたコードがあります。VS2012 Express を使用して実行しようとすると、「warning C4996: '': This function or variable may be unsafe.」という警告が表示されました。代わりに strtok_s の使用を検討してください。非推奨を無効にするには、_CRT_SECURE_NO_WARNINGS を使用します。詳細については、オンライン ヘルプを参照してください」
セキュリティ警告を無効にしようとしましたが、VS Express で _CRT_SECURE_NO_WARNINGS オプションが利用できないことがわかりました。そのため、この警告を回避するには、strtok の代わりに strtok_s を使用するようにコードを変更する必要がありました。しかし、コードはエラーなしで最後まで実行しても、結果が表示されないという問題が発生しました。明らかに、ファイルの読み取りは発生しません。これは、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エクスプレスを使用して実行しようとしたものです
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
2番目のコードの何が問題になっていますか?