2017-08-07 3 views
-2

CMD cointaning gapからどのようにパスを取得できますか?ここで私は成功せずにしようとしたコードです:あなたの問題とは無関係のcmdからC++までのギャップ

if (argv[3] == NULL) { 
    cout << "" << endl; 
} 
else if (strcmp(argv[3], "/d") == 0) { 
    const size_t cSize = strlen(argv[4]) + 1; 
    wchar_t* wc = new wchar_t[cSize]; 
    mbstowcs(wc, argv[4], cSize); 
    adresar = wc; 
    cout << "/d OK" << endl; 
} 
+2

は、私はあなたがある*少なくとも3つのまたは4つの引数が*を確認するために、 'argc'を確認すると仮定しますか?何もない(例えば)なら、 'argv [3]'は範囲外です。あなたは*未定義の動作*を持つでしょう。 –

+2

あなたの問題に関連して、* spaces *を含む引数を渡したい場合は二重引用符で囲みます。 'mycommand argv1 argv2/d" argv4のようにスペースを入れてください " –

+0

これはいくつかのディレクトリへのパスです。二重引用符で囲んだ場合はうまく動作しません。私はUTFコーディングについて読んでいますが、コード。 例: "C:プロジェクト\ ConsoleApplication1 \ ConsoleApplication1 \ Visual Studioの2017 \ XXX \ドキュメント\ \ユーザーが" –

答えて

0
mycommand argv1 argv2 /d "argv4 with spaces 
+2

このコードは問題を解決するかもしれませんが、良い答えは常に説明を含むべきです。 – BDL

関連する問題