C++:
명령줄 인수 읽기
How to: (어떻게 하나요?)
#include <iostream>
int main(int argc, char* argv[]){
std::cout << "Program Name: " << argv[0] << std::endl;
for(int i = 1; i < argc; ++i) {
std::cout << "Argument " << i << ": " << argv[i] << std::endl;
}
return 0;
}
실행 예:
$ ./myprogram option1 value1
Program Name: ./myprogram
Argument 1: option1
Argument 2: value1
Deep Dive (깊은 탐구)
커맨드 라인 인수는 UNIX의 초창기부터 사용되었습니다. 사용자는 터미널을 통해 입력하고 프로그램은 main
함수의 인수를 통해 이를 받습니다: argc
는 인수의 수를 나타내고, argv
는 인수 내용을 담고 있는 문자열 배열입니다. 대안으로 getopt
라이브러리나 C++17의 std::filesystem
이 있지만, 가볍고 간단한 요구 사항에는 전통적인 방식이 여전히 흔히 쓰입니다. 구현은 시스템마다 다를 수 있으니 portable code 작성 시 주의가 필요합니다.