Argc 및 Argv C++

Argc Mich Argv C



C++ 프로그램을 작성하는 동안 우리 모두는 'main()' 함수의 구현이 없으면 프로그램을 컴파일할 수 없기 때문에 'main()' 함수가 매우 중요하게 간주된다는 것을 알고 있습니다. C++의 다른 모든 함수와 마찬가지로 'main()' 함수도 인수를 받을 수 있습니다. 그러나 'main()' 함수에 인수를 전달하는 것과 다른 함수에 인수를 전달하는 것의 차이점은 전자의 경우 명령줄을 통해 인수를 전달해야 한다는 것입니다. 이는 'main()' 함수 자체가 드라이버 함수이기 때문에 다른 함수가 이 함수를 호출하고 인수를 전달할 수 없는 이유입니다. 이 기사에서는 Ubuntu 20.04의 C++에서 'main()' 함수의 두 매개 변수, 즉 'argc' 및 'argv'에 대해 설명합니다.

Ubuntu 20.04에서 C++의 Argc 및 Argv는 무엇입니까?

매개변수 'argc'는 인수 개수를 의미하고 'argv'는 C++에서 프로그램을 실행할 때 명령줄을 통해 'main()' 함수에 전달되는 모든 인수를 포함하는 문자 배열을 의미합니다. 여기서 'argc'는 전달된 인수의 실제 개수보다 항상 '1' 더 많은 인수 개수를 표시한다는 것을 알아야 합니다. 개체 파일의 이름도 명령줄 인수로 계산되기 때문입니다. 모든 데이터 유형에 속하는 명령줄 인수를 'main()' 함수에 전달할 수 있습니다. 주의해야 할 것은 'main()' 함수 내부에 액세스하려는 경우 이러한 매개변수가 'main()' 함수의 프로토타입에 언급되어 있다는 것입니다. 그러나 'main()' 함수는 이 두 매개변수가 없어도 완벽하게 작동할 수 있습니다. 이에 대해서는 이 기사의 다음 섹션에서 논의할 것이며, 그 후에 Ubuntu 20.04의 C++에서 이 두 매개변수의 사용을 진행할 것입니다.

C++에서 Argc 및 Argv가 없는 Main 함수:

먼저 C++의 'main()' 함수는 'argc' 및 'argv' 매개변수를 사용하지 않아도 완벽하게 작동할 수 있음을 알려드립니다. 이는 다음 C++ 프로그램에 설명되어 있습니다.









이 프로그램에는 인수가 없는 간단한 'main()' 함수가 있습니다. 이 'main()' 함수 내에서 터미널에 샘플 메시지만 인쇄하고 있습니다.



그런 다음 아래 언급된 명령의 도움으로 이 기본 C++ 프로그램을 컴파일했습니다.





$ 지++ CommandLine.cpp -o 명령줄

그런 다음 다음 명령을 실행하여 이 프로그램을 실행했습니다.



$ . / 명령줄

이 간단한 C++ 프로그램의 출력은 아래 이미지에 나와 있습니다.

명령줄 인수를 전달하지 않고 C++ 프로그램 실행:

이제 'main()' 함수가 'argc' 및 'argv' 매개 변수를 허용할 수 있는 C++ 프로그램을 구현하려고 시도할 것입니다. 단말기. 해당 C++ 프로그램은 다음 이미지에 표시됩니다.

이 C++ 프로그램에서 'main()' 함수는 'argc' 및 'argv' 매개변수를 허용할 수 있습니다. 그러나 이 특정 예제에서는 이러한 값을 전달할 의도가 없었기 때문에 의도적으로 'argc'를 '0'으로 균등화하여 해당 값을 인쇄하려고 할 때 가비지 값을 반환하지 않도록 했습니다. 그런 다음 터미널에 'argc' 매개변수의 값을 인쇄했습니다. 그런 다음 터미널의 모든 명령줄 인수를 인쇄하기 위해 'for' 루프를 사용했습니다.

아래 표시된 명령을 사용하여 이 코드를 컴파일했습니다.

$ 지++ CommandLine.cpp -o 명령줄

그런 다음 이 프로그램을 실행하려고 할 때 다음 명령에서 볼 수 있듯이 명령줄 인수를 전달하지 않았습니다.

$ . / 명령줄

아래 이미지에 표시된 이 C++ 프로그램의 출력에서 ​​인수 개수가 '0'이기 때문에 이 함수에 전달된 명령줄 인수가 없고 문자 배열 ' argv”도 비어 있습니다.

정수 유형 명령줄 인수로 C++ 프로그램 실행:

이제 정수 유형 명령줄 인수를 전달하여 동일한 C++ 프로그램을 실행하려고 합니다. 그러나 그렇게 하기 전에 다음 이미지와 같이 코드를 약간 수정합니다.

이 코드에 대한 유일한 수정 사항은 'argc=0' 줄을 제거한 것입니다. 이 예제에서는 런타임에 이 프로그램에 전달된 명령줄 인수의 실제 수를 인쇄하려고 하기 때문입니다. 나머지 코드는 위 섹션에서 사용한 것과 완전히 동일합니다.

아래 표시된 명령을 사용하여 수정된 코드를 다시 컴파일했습니다.

$ 지++ CommandLine.cpp -o 명령줄

그런 다음 이 코드를 실행하기 위해 다음 명령줄 인수를 사용했습니다.

$ . / 명령줄 1

이것은 우리가 이 C++ 프로그램을 실행하는 동안 1, 2, 3과 같은 3개의 정수 유형 명령줄 인수를 전달했음을 의미합니다.

이 수정된 프로그램의 출력은 아래 이미지에 나와 있습니다.

이 C++ 프로그램이 반환하는 인수의 총 수는 '4'입니다. 즉, 전달한 세 개의 정수 인수 + 목적 파일의 이름입니다. 이 프로그램은 또한 'argv' 문자 배열의 요소를 터미널에 인쇄했습니다. 즉, 프로그램 이름과 함께 실행 시 이 프로그램에 전달된 실제 정수 유형 인수입니다.

문자 유형 명령줄 인수로 C++ 프로그램 실행:

이제 문자 유형 명령줄 인수를 전달하여 실행하려고 할 때 동일한 C++ 프로그램이 제대로 작동하는지 확인하고 싶었습니다. 이를 위해 더 이상 수정할 필요가 없었습니다. 다음과 같이 문자 유형 명령줄 인수를 사용하여 실행하기만 하면 되었습니다.

$ . / 명령줄 a b c d e f

이는 우리가 이 C++ 프로그램을 실행하는 동안 a, b, c, d, e 및 f와 같은 6개의 문자 유형 명령줄 인수를 전달했음을 의미합니다.

동일한 C++ 프로그램에 문자 유형 명령줄 인수를 전달한 결과 생성된 출력은 다음과 같습니다.

이 C++ 프로그램이 반환하는 인수의 총 수는 '7'입니다. 즉, 전달한 6자 인수 + 개체 파일의 이름입니다. 이 프로그램은 또한 'argv' 문자 배열의 요소를 터미널에 인쇄했습니다. 즉, 프로그램 이름과 함께 실행 시 이 프로그램에 전달된 실제 문자 유형 인수입니다.

결론:

이 문서는 'main()' 함수의 매개 변수, 즉 'argc' 및 'argv'라고도 하는 두 개의 명령줄 인수에 대한 논의를 목표로 했습니다. 우리는 이 두 매개변수의 사용법을 설명함으로써 그 중요성에 대해 이야기했습니다. 그런 다음 Ubuntu 20.04의 C++에서 'argc' 및 'argv'의 사용법을 설명하는 몇 가지 예를 공유했습니다. 또한 이러한 매개변수를 사용하지 않아도 'main()' 함수가 완벽하게 작동할 수 있음을 명확히 했습니다. 따라서 이 기사를 읽으면 C++에서 'argc' 및 'argv'의 사용법을 매우 명확하게 이해하게 될 것입니다.