0

私はこれが初心者の質問であることを知っています。ここからこのサンプルコードを使用しました。どのように機能するはずですか?誰のために何かを入力できると思ったのですが、すぐに閉じてしまいます。

#include <iostream>
#include "getopt_pp_standalone.h"

using namespace GetOpt;
using namespace std;

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

    GetOpt_pp ops(argc, argv);

    ops >> Option('n', "name", who, "world" );              /* the default name is 'world' */

    cout << "Hello " << who << "!" << endl;

    return 0;
}
4

1 に答える 1

0

ユーザーが入力するのではなく、コマンドラインgetoptからオプションを取得するバリアント。

次のようなプログラムを実行する必要があります。

myprog -n Pax

ユーザーからのインタラクティブな入力が必要な場合は、すべてを取り除き、次のgetoptようなストリームを使用してください。

std::cout << "Identify yourself, interloper!\n";
std::cin >> who;
std::cout << "Hello, " << who << ", my name is Pax.\n";

伝えるべき他のいくつかのこと:

まず、待機する代わりに実行ウィンドウを閉じるIDEで実行している場合は、ifの前にgetchar()(または)を付ける必要がある場合があります。それ以外の場合、出力はウィンドウに移動し、すぐに消えます。cin >> whoreturn

第2に、小さなプログラムではおそらく問題ありませんusing namespace stdが、より実質的なプロジェクトで問題が発生する可能性があります(標準の名前空間の汚染に関しては、ここで適切な説明を参照してください)。次のように、通話を完全に修飾することを好みます。

std::cout << "blah, blah, blah\n";

第三に、ほとんどの開発者によってあまりにも頻繁に使用endlされます。ほとんどの場合、代わりに使用するか、。のように文字列の最後に追加する必要があります。これは、この方法では、ストリームの非効率的なフラッシングが強制されないためです。それはここでカバーされています。'\n'\n"Hello, world!\n"\nendl

于 2013-02-25T08:57:09.280 に答える