int main(int argc, char *argv[])
{
cout << strcmp(argv[1], "id");
return 0;
}
それはfalseを返します。私は何が欠けていますか?私はそれが働いてしまったコマンドライン引数の文字列比較が機能しないのはなぜですか?
おかげで、4分で答えを受け入れるだろう。
int main(int argc, char *argv[])
{
cout << strcmp(argv[1], "id");
return 0;
}
それはfalseを返します。私は何が欠けていますか?私はそれが働いてしまったコマンドライン引数の文字列比較が機能しないのはなぜですか?
おかげで、4分で答えを受け入れるだろう。
strcmp
戻り0、C文字列が比較される場合に同じです。 0 == false
、それは実際に働いています。
if(argc == 2 && strcmp(argv [1]、 "id"))私はそれを好きなように使っています ai.exe id しかしこのコードブロックは実行されません。 – Ren
'if(argc == 2 &&!strcmp(argv [1]、" id "))' –
あなたは実際に私の答えを読んだことがありますか?あなたはまったく逆のことをしています。 – mfontanini
strcmp
戻り0 2つの文字列がequalある場合。
ヒント:この使用バウンド例外(セグメンテーションフォールト)のうちの配列を避けるために:ちょうどARGVを出力することによって開始することが容易になり
if (argv < 2) return 0;
を[1]:
cout << argv[1] << endl;
そして、あなたはargv [1]にどんな価値をもたらしているのかを見て、それをそこから取ることができます。あなたのコードには何も問題はないので、正しいargv [1]パラメータを渡すためにIDEを正しく構成していないと推測しています。
上記のように、はになる必要がありますが、偽ではありません。
あなたは常にプログラムが引数を取得したかどうかを確認する必要があり – Satya
どのようにコマンドラインからプログラムを呼び出しています。 – mikithskegg