C++ Chapter 7.13 : 명령줄 인수

Date:     Updated:

카테고리:

태그:

인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!


chapter 7. 함수 : 명령 줄 인수

command line 혹은 명령 프롬프트에서 command line을 통해 프로그래머가 직접 main 함수로 넘길 인수를 입력하여 프로그램을 실행할 때 사용한다.

🔔 command line 입력 방법

  1. 명령 프롬프트
    • 윈도우 검색창에 cmd 치면 명령 프롬프트가 나온다.
    • 실행하려는 프로젝트가 있는 로컬 폴더로 cd명령어를 통해 이동한 후 명령 줄 인수를 입력하면 된다.
  2. 비주얼 스튜디오
    • project 마우스 우클 > properties > Debugging > Command Arguments
    • 여기서 명령 줄 인수를 입력하면 된다.

command line에서 실행할 때 실행 파일이 있는 로컬 폴더로 이동하여 .exe 확장자의 실행 파일 이름을 입력한 후 엔터치면 된다. 이때 실행시 인수로 넘겨주고 싶은게 있다면

int main (int argc, char * argv [])

main 함수를 매개변수 받는 함수로 설정하고 공백을 기준으로 하여 인수들을 같이 넘기면 된다.


🔔 argc, argv[]

  • argc
    • char * argv 문자열 배열의 원소 개수가 된다.
    • 프로그래머가 입력하는 부분은 아니다.
      • 프로그래머가 입력한 argv개수가 자동으로 대입 됨.
  • argv []
    • 문자열 배열로 사용자가 command line에 입력한 인수들이 문자열로서 이 배열에 들어간다.
    • argv[0] 에는 실행파일 이름 (경로 + 프로젝트이름) 이 문자열로 들어가고
    • argv[1] 부터 프로그래머가 필요로 하여 입력한 인수들이 문자열로 들어간다.
int main (int argc, char * argv [])
{
    for (int count = 0; count < argc; ++count)
	{
		cout << argv[count] << endl;
	}
	return 0;
}

이와 같이 main 함수를 작성 한 후 command line에 아래와 같이 입력하면

> my_project 100 1024 3.14
  • argv
    • argv[0] : “my_project” 실행 파일 이름이 문자열로 들어간다.
    • argv[1] “100” 첫 번째 인수가 문자열로 들어간다.
    • argv[2] “1024” 두 번째 인수가 문자열로 들어간다.
    • argv[3] “3.14” 세 번째 인수가 문자열로 들어간다.
  • argc
    • 인수가 4개이므로 4가 들어가게 된다.
  • main 함수가 실행되면서 my_project 100 1024 3.14 이 출력된다.

문자열로 들어온다는 것에 주의하기

명령 줄 인수로 정수를 입력해도 문자열로 받기 때문에 정수로 사용하고 싶다면 정수로 변환하는 과정을 진행해주어야 한다.

std::stoi : 문자열을 정수로 바꾸어 주는 함수

int (count >= 1)
    int input = std::stoi(argv[count])  // argv[1]부턴  문자열 인수를 정수로 변환


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

댓글남기기