まず、私のタイトルがよくある質問のように見えますが、聞いてください。「引数の解析」と言うとき、起動時にプログラムに渡されるコマンドライン引数を意味するのではありません。コマンドを受信して実行時に解析するための別のシステムを作成しようとしています。
主要:
int main(int argc, char *args[])
{
cout << "Started up." << endl;
reloop();
}
// Main execution point. Prints text to the console and moves to a void:
void reloop()
{
char *str;
cin >> str;
parseargs(str);
}
// Starts waiting for inputted data, if found, move onto parseargs void.
void parseargs(char *args)
{
char *strings[10];
char delim[] = " ";
int i = 0;
strings[i] = strtok(args,delim);
if(strings[0] == "try")
{
cout << "WORKED!" << endl;
reloop();
}
else
{
cout << "Na. Didn't work." << endl;
reloop();
}
}
// Takes the arguments passed to it, splits them via a space and passes them to an array. From here, compares the first entry in the array to a command. If they equal, output success note.
さて、私はかなり長い間 C# プログラマーであり、C++ を始めたばかりです..何が間違っているのでしょうか? プログラムが起動すると、次のエラーが表示されます。
Debug Assertion Failed!
Program: C:\Windows\system32\MSVCP110D.dll
File: c:\program files\microsoft visual studio 11.0\vc\include\istream
Line: 990
Expression: Invalid null pointer
*注: CPP ファイルの先頭に各関数の宣言があります。