Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 명령줄 인수를 구문 분석하는 방법

C++ 프로그램을 실행할 때 명령줄에서 프로그램으로 값을 전달할 수 있습니다. 이렇게 전달되는 값을 명령줄 인수(command line arguments)라고 하며, 프로그램을 외부에서 제어하고 싶을 때 특히 유용합니다. 설정값이나 옵션을 코드에 직접 하드코딩하지 않고도 실행 시점에 동적으로 지정할 수 있기 때문입니다.

argc와 argv의 역할

명령줄 인수는 main() 함수의 매개변수를 통해 처리됩니다.

argc(argument count)는 프로그램에 전달된 인수의 개수를 나타내며, argv[](argument vector)는 각 인수를 가리키는 포인터 배열입니다. 참고로 argv[0]에는 항상 프로그램 이름 자체가 저장되므로, 실제 사용자가 입력한 인수는 argv[1]부터 시작됩니다.

예제 코드

다음 예제는 명령줄에서 인수가 전달되었는지 확인하고, 그 결과에 따라 적절한 동작을 수행합니다.

#include <iostream>
using namespace std;
int main( int argc, char *argv[] ) {
   if( argc == 2 ) {
      cout << "전달된 인수는 " << argv[1] << endl;
   } else if( argc > 2 ) {
      cout << "인수가 너무 많습니다." << endl;
   } else {
      cout << "인수 하나가 필요합니다." << endl;
   }
}

실행 결과

인수를 하나만 전달했을 때:

$./a.out testing
전달된 인수는 testing

인수를 두 개 이상 전달했을 때:

$./a.out testing1 testing2
인수가 너무 많습니다.

인수를 전달하지 않았을 때:

$./a.out
인수 하나가 필요합니다.

정리

이처럼 argcargv[]를 활용하면 실행 환경에 따라 프로그램의 동작을 유연하게 변경할 수 있습니다. 파일 경로, 모드 선택, 구성 옵션 등을 외부에서 지정해야 하는 실무 프로그램에서 명령줄 인수 처리는 필수적인 기법이므로, 기본 구조를 잘 익혀두는 것이 좋습니다.