2
main(int argc, char *argv[])
{
if(argc != 3) {
printf("Invalid number of arguments\n");
exit(1);
}}

ここでは、カウントが必要な引数の数と一致しない場合、プログラムを直接終了しています。

引数の数が数と一致しない場合に、コマンドライン引数を再入力するようにユーザーに求める方法はありますか?私はプログラムを終了せずに意味します。

4

1 に答える 1

2

試す:

#include <iostream>
#include <string>
std::string askUser(std::string const& question)
{   
     std::cout << question << "\n";

     std::string result;
     std::getline(std::cin, result);

     return result;
}   
int main(int argc, char* argv[])
{   
    std::string  arg1;
    std::string  arg2;
    std::string  arg3;

    arg1   = (argc > 1) ? std::string(argv[1]) : askUser("Please Enter Arg1");
    arg2   = (argc > 2) ? std::string(argv[2]) : askUser("Please Enter Arg2");
    arg3   = (argc > 3) ? std::string(argv[3]) : askUser("Please Enter Arg3");
 }   
于 2013-01-04T07:04:31.550 に答える