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

C++ 명령줄 인자(Command Line Arguments) 처리 방법 완벽 정리

C++ 프로그램은 실행될 때 명령줄을 통해 외부로부터 값을 전달받을 수 있습니다. 이렇게 전달되는 값들을 명령줄 인자(command line arguments)라고 부릅니다. 코드 내부에 값을 직접 하드코딩하는 대신 프로그램 실행 시점에 외부에서 동작을 제어하고 싶을 때 매우 유용하게 활용됩니다.

main() 함수의 argc와 argv

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

  • argc(argument count): 프로그램에 전달된 인자의 총 개수를 나타냅니다. 단, 프로그램 이름 자체도 하나의 인자로 계산되므로 실제 사용자가 입력한 인자 개수는 argc - 1입니다.
  • 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
인자 하나가 필요합니다.

정리

위 예제에서 볼 수 있듯이, argc 값과 argv[] 배열을 조합하면 사용자가 명령줄에서 입력한 값을 손쉽게 확인하고 프로그램의 동작을 유연하게 제어할 수 있습니다. 파일 경로, 옵션 설정, 모드 선택 등 다양한 용도로 활용되므로, 실무적인 C++ 프로그래밍에서 반드시 익혀두어야 할 기본 개념입니다.