C++에서 명령 줄 인수 검색
-
int main(int argc, char *argv[])
표기법을 사용하여 C++에서 명령 줄 인수 검색 -
int main(int argc, char **argv)
표기법을 사용하여 C++에서 명령 줄 인수 검색 -
while
루프를 사용하여 C++에서 명령 줄 인수 인쇄
이 기사에서는 C++에서 명령 줄 인수를 검색하는 방법에 대한 몇 가지 방법을 설명합니다.
int main(int argc, char *argv[])
표기법을 사용하여 C++에서 명령 줄 인수 검색
명령 줄 인수는 실행 시작시 프로그램에 전달할 수있는 문자열 값입니다. 일반적으로 이러한 인수는 CLI 전용 인터페이스가있는 프로그램에서 널리 사용됩니다. Unix 명령 줄 유틸리티. C++ 프로그램에는 명령 줄 인수에 액세스하기위한 특별한main
함수 정의가 있어야합니다. 즉,main
함수는 매개 변수를(int argc, char *argv[])
로 포함해야합니다. argc
매개 변수는 프로그램 이름 자체를 포함하여 프로그램에 전달 된 인수의 총 개수를 나타냅니다. 반면argv
는 인수 값을 나타내는 문자열의 배열을 저장하며 배열 표기법 인argv[0]
을 사용하여 액세스 할 수 있습니다. char
포인터 배열은0
으로 종료됩니다.
다음 예제는 각 인수 값을 콘솔에 인쇄하는for
루프의 기본 사용법을 보여줍니다. 그러나 앞의if
문은 프로그램에 지정된 인수가 있는지 확인한 다음 실행을 계속합니다.
#include <iostream>
#include <string>
using std::cerr;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
if (argc < 2) {
cerr << "No program parameters provided !" << endl;
exit(EXIT_FAILURE);
}
for (int i = 0; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]);
exit(EXIT_SUCCESS);
}
int main(int argc, char **argv)
표기법을 사용하여 C++에서 명령 줄 인수 검색
유효하고 이전 것과 똑같이 작동하는 또 다른main
함수 프로토 타입이 있으므로int main(int argc, char **argv)
표기법이 발생할 때 혼동이 없는지 확인하기 위해 포함합니다. 요소에 액세스하는 것은 같은 방식으로 수행되며for
루프를 사용하여 순회 할 수 있습니다.
#include <iostream>
#include <string>
using std::cerr;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char **argv) {
if (argc < 2) {
cerr << "No program parameters provided !" << endl;
exit(EXIT_FAILURE);
}
for (int i = 0; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]);
exit(EXIT_SUCCESS);
}
while
루프를 사용하여 C++에서 명령 줄 인수 인쇄
인수 값에 액세스하는 또 다른 방법은argv
포인터가 0이 될 때까지 역 참조하는 것입니다. argv
배열은 0 값으로 종료되도록 보장되며,while
루프를 구현하여 배열을 탐색하고 인수 값을 하나씩 인쇄하는 데 활용할 수 있습니다. 아래의if
문의printf
호출이 프로그램에 충분한 인수가 전달되지 않았 음을 나타내는 오류보고자 역할을합니다. 흥미로운 부분은 프로그램 이름이argv[0]
표기법과%s
지정자로 검색되어 변경 될 때마다 이름을 하드 코딩하는 것보다 더 유연한 방법이라는 것입니다.
#include <iostream>
#include <string>
using std::cerr;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
if (argc < 4) {
printf("Usage: ./%s arg1 arg2 arg3\n", argv[0]);
exit(EXIT_FAILURE);
}
while (*argv) {
cout << *argv << endl;
argv += 1;
}
exit(EXIT_SUCCESS);
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook