0

みんな。関連するスレッドがたくさんあることは知っていますが、よく理解できないので、自分で書くことにしました。

私は Win32 コンソール アプリケーションを作成しようとしていますが、これは私がやりたいことです。

私の名前のアプリが MyApp.exe だとしましょう。コマンド ラインに入力するたびに、次のように入力します。

MyApp.exe -W Hello

私のアプリは、出力に「Hello」と書き込みます。他の引数と同じです。基本的に、必要なすべての引数を制御したいのですが、その方法がわかりません。

これは私が持っているすべてです:

    #include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char *argv [])
{

    int count;


    printf("This program was called with  \"%s\". \n", argv[1]);
    printf("\n");

    system("Pause");

}

つまり、すべての引数が argv 配列にあることは知っていますが、次のように解析する方法がわかりません。

if(argv[1] == "-W")

それは動作しません。

どうもありがとう!

4

2 に答える 2

0

を使用して文字列比較を行うことはできません。==次のようなものが必要です

if (strcmp(argv[1], "-W") == 0)

大文字と小文字を区別しない比較には、代わりに を使用する必要があります_stricmp()

String Manipulationに関するこの MSDN の記事を参照してください。

于 2013-08-12T14:50:32.027 に答える
0

C を使用している場合は、次のstrcmp関数を使用します。

if(strcmp(argv[1], "-W") == 0) { /* the first argument is -W */ }

C++ を使用している場合は、次を使用しますoperator==

if(std::string(argv[1]) == "-W") { /* the first argument is -W */ }
于 2013-08-12T14:54:51.293 に答える