1

昨日、コマンドラインから渡された引数を使用する簡単なプログラムを C++ で作成しました。

E.G. myDrive:\myPath\myProgram.exe firstWord secondWord

プログラムは正常に実行され、必要な処理を実行しますが、ちょっとした好奇心がありargc --;ます。それをうまく使用するには、書く必要がありました。

特にargc、プログラムを実行するときに、プログラムに引数として単語を与えないと、悪い時間を与えられます...

今は動くので全然悪くないのですが、どうしてこうなったんだろう!【PS 作っargc --;て印刷してお得0に!】

編集:ここで使用するすべての命令argc

int main(int argc, char *argv[]) {
    [...]
    argc --;
    if(argc > 0){
        if(firstArg.find_last_of(".txt") != string::npos){
            reading.open(argv[1], ios::binary);
            [...]
        }
    }
    if ((!(firstArg.find_last_of(".txt") != string::npos)) && argc > 0){
    [...]
        for(int i = 1; i <= argc; i ++){
        [...]
        toTranslate = argv[i][j];
        [...]
        toTranslate = argv[i][j];
        }
    }
}
4

1 に答える 1

5

引数にはプログラム自体の名前も含まれるargcため、常に少なくとも 1 です。

典型的なループは次のとおりです。

int main(int argc, char * argv[])
{
    for (int i = 0; i != argc; ++i)
    {
        std::cout << "Argument #" << i << ": " << argv[i] << "\n";
    }
}

または、逆方向に印刷することもできます:

while (argc--)
{
    std::cout << argv[argc] << "\n";
}
于 2013-05-04T14:42:53.447 に答える