전달할 주 프로그램에서 (argc, argv) 명령 행 함수를 호출하는 라이브러리에서 함수를 사용하고 있습니다. 직접 그것에; 그러나, 나는 나머지 코드를 함수가 아닌 메인 코드에서 평가하면서 일부 인수 만 전달하려고합니다. 다음은 인수를 평가하는 주 코드의 샘플입니다.C++에서 main (argv, argc) 함수로 (argc, argv) 변수를 전달하십시오.
int main(int argc,char** argv)
{
// Evaluate arguments
if (argc > 9) {
PrintUsage();
return 1;
}
G4String input;
G4String macro;
G4String physicslist;
for (G4int i=1; i<argc; i=i+2) {
if (G4String(argv[i]) == "-i") macro = argv[i+1];
else if (G4String(argv[i]) == "-l") physicslist = argv[i+1];
else if (G4String(argv[i]) == "-g") input = argv[i+1];
else if //pass the rest of the arguments to function below
G4MPImanager* g4MPI = new G4MPImanager(argc,argv);
위의 평가되지 않은 다른 인수 외부 라이브러리의 함수에 전달하려고합니다 (표시된대로 호출해야 함).
감사합니다.
이것은 코드 섹션을 통해 잘 생각되지만 실제로 질문하지 않았습니다. "-i", "-l"및 "-g"가 아닌 모든 인수 또는 다음 인수를 감지 할 수있는 방법을 찾고 있습니까? – chrisb2244
'getopt' 나'argp' [GNU libc] (http://www.gnu.org/software/libc/manual/html_node/Parsing-Program-Arguments.html#)와 같은 표준 프로그램 인수 구문 분석 기법을 사용해야합니다. 구문 분석 프로그램 인수). GNU 협약에 따라 일반적인'--help'와'--version' 인자를 받아들이는 것은 매우 유용합니다. 그러면 라이브러리가'argc' +'argv' 인수를 만들 수 있습니다 ('argv [argc]'는'NULL'이어야합니다). –