开发者

How to get 1st parameter in main() in C++? [duplicate]

开发者 https://www.devze.com 2023-01-05 17:30 出处:网络
This question already has answers here: Closed 12 years ago. 开发者_开发问答Possible Duplicate: Pass arguments into C program from command line.
This question already has answers here: Closed 12 years ago.
开发者_开发问答

Possible Duplicate:

Pass arguments into C program from command line.

mypro parameter

When run like above,how to get the parameter in mypro's main() :

#include <iostream>

int main()
{
   char* str = "default_parameter";
   if(parameter_exists())str = parameter;
   ...
}

How to implement the pseudo code above?


Just need to add (int argc, char *argv[]) to your main function. argc holds the number of arguments, and argv the arguments themselves.

int main(int argc, char *argv[])
{
    std::string str = "default";
    if (argc > 1) { str = argv[1]; }
}

Note that the command is also included as an argument (e.g. the executable). Therefore the first argument is actually argv[1].


When expecting command-line arguments, main() accepts two arguments: argc for the number of arguments and argv for the actual argument values. Note that argv[0] will always be the name of the program.

Consider a program invoked as follows: ./prog hello world:

argc    = 3
argv[0] = ./prog
argv[1] = hello
argv[2] = world

Below is a small program that mirrors the pseudocode:

#include <iostream>
#include <string>

int main(int argc, char **argv) {
    std::string arg = "default";
    if (argc >= 2) {
        default = argv[1]
    }
    return 0;
}


Your function should use the second of these two allowed C++ main function signatures:

int main(void)

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

In this, argc is the argument count and argv is an argument vector.

For more details, see this Wikipedia article.


Well you need a main function that accepts arguments, like so:

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

}

You would then check the number of arguments passed in using argc. Usually there is always one, the name of the executable but I think this is OS dependent and could thus vary.


You need to change the main to be:

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

argc is the number of paramaters, argv is an array containing all of the paramaters (with index 0 being the name of the program). Your first parameter will be located at index 1 of argv.


#include <iostream>


using namespace std;

int main(int argc, char* argv[]) {
   for(int i = 1; i < argc; i++)
      cout << atoi(argv[i]) << endl;
   return 0;
} 

Here argc gives the count of the arguments passed and argv[i] gives ith command line parameters.

where argv[0]='name of the program itself'


main has two parameters, int argc and char** argv which you can use to access to the command line parameters.

argc is the number of parameters including the name of the executable, argv points to the parameter list itself (so that argv[0] is "mypro" in your example).

Just declare main like int main (int argc, char** argv){..}


You need to use this declaration of main:

int main(int argc, _TCHAR* argv[])
{
    if (argc > 1)
    {
        str = argv[1];
    }
}

argv[0] is the name of the executable, so the parameters start at argv[1]


On Windows, use the following signature instead to get Unicode arguments:

int wmain(int argc, wchar_t** argv)
0

精彩评论

暂无评论...
验证码 换一张
取 消