다시 오신 걸 환영해요
이 강의에서는 명령줄 인수 얘기를 해보죠
네 네 변수와 데이터 타입 섹션에 이 정보를
포함시킨 이유는 명령줄 인수는 프로그램에 데이터를 전달하는 방법이기
때문입니다
여러분 프로그램에 일종의 변수를 전달하는 거죠
종종 아주 유용하게 쓰이죠 아주 짧게
설명할게요
커맨드라인 인수를 보죠
네 기본적으로 어떤 프로그램이 개발되면 사용자가 터미널에서
소량의 정보를 입력해야 할 때가 있어요
이것과 마찬가지로 명령줄 인수는 본질적으로
프로그램 인수예요
프로그램을 통과하는 방법이죠
네 사용자나 프로그램에 동적인 데이터를 요청하면 사용자가 입력하죠
이 데이터를 전달하는 방법은 아주 다양합니다
사용자에게 요청하거나 프로그램으로 통과시킬 수 있어요
네 네 이렇게 하는 이유는 사용자가 여러분이
계산하고 싶은 삼각수를 나타내는 숫자를 입력해야 하기 때문입니다
혹은 사용자는 사전에서 찾고 싶은 단어를 입력해야
하죠
모든 데이터가 고정된 건 아니에요
사용자에게 입력할 데이터를 투스크하는 거죠
말했듯이 두 가지 방법이 있어요
네 사용자로부터 데이터를 요청할 수도 있습니다. 곧 강의에서
다루겠습니다. 아니면 프로그램이 실행될 때에 정보를 제공하거나 프로그램을 제공할
수도 있습니다.
이건 명령줄 인수로 사용되죠
프로그램이 실행되면 명령선을 통해 프로그램에 데이터를 전달해요
모든 프로그램에는 주요 기능이 있어요
이건 특별한 기능이에요 프로그램의
시작점이죠
명령줄 인수를 얻기 위해 사용될 수 있기 때문에 특별하죠
네 메인이 런타임 시스템에 의해 호출될 때 두
개의 인수가 이 함수에 전달돼요 명령줄 인수요
두 개의 인수는 첫 번째 원은 인수예요
데이터가 얼마나 프로그램으로 옮겨졌는지도요
정수 값이죠
명령줄에 입력한 평단의 개수를 지정해요
네 두 번째 인수는 arg vs로 인수 벡터로 나타납니다 문자 포인터의
배열이죠 그리고 두 번째 인수는
이제 배열이 뭔지 자문해 보세요
아직 배열이 뭔지 몰라요
명령줄 인수를 어떻게 전달할 수 있는지 오해하는
게 중요해요
배열의 다양한 변수만 생각하면 돼요
첫 번째 인수는 arg cfor 인수를 세고
두 번째 인수는 매개체예요
인수는 함수에 데이터를 전달하는 방법이에요
그게 다예요 네 그렇게 복잡하지도 않아요
주요 기능을 전달할 수 있어요 약간의 데이터요
네 네 프로그램을 실행하면 그 데이터는 구체화되죠 커맨드라인에서 프로그램을
실행할 수 있습니다
기억하세요 기억하세요 프로그램을 실행할 때 그게 실행 가능하면 더블
클릭하거나 Linux나 Windows에 있다면 .슬래시와
.out을 이용해 실행하세요
그렇게 하면 프로그램이 끝난 후에 뭔가를
통과시킬 수 있어요
프로그램이라고 할 수 있죠 그다음 매개 변수와
데이터를 입력했어요
어떻게 하는지 보여드릴게요
네 다시 한 번 배열의 첫 항목은 포인터입니다
실행할 프로그램의 이름이죠 그 다음 모든 건 인수가 될 겁니다
이걸 보여드리죠
네 여기 예가 있어요 이게 메인 함수예요
2개의 인수 또는 2개의 매개 변수를 갖고 있죠 정말로요
매개 변수와 인수의 탄력성에 대해서도
얘기할 거예요
intargsie 다음에 char가 있고 asterisk
arg vs가 있죠
네 다시 말씀드리지만 신경 쓰지 마세요 기본적으로
쉼표 뒤에 있는 모든 건 프로그램에 넘기는 데이터예요
argC는 데이터의 수를 제공하죠
예제를 살펴보죠 이걸 배우는 가장 좋은 방법이에요
여기 예제가 있어요
네 명령줄을 통해 우리 프로그램에 데이터를 전달하려면 메인 라인에
매개 변수가 있어야 해요
지금까지 메인 창은 괄호 두 개와 함께 비어있었죠
먼저 arg c라고 입력해야 해요
어떤 이름이든 상관없지만 인수치료사는 유효해요
그리고 char star arg v가 있죠.
지금은 이 구문을 걱정하지 마세요
하지만 그 둘을 먼저 추가해야 해요
여기서 일부변수를 생성할 거예요 데이터가 전달되는
걸 시연하는 거죠
데이터가 전달되기 때문에 어딘가에 저장해야 해요
그래서 애용할 수 있는 int 형식을 만들겠습니다
인수의 개수죠
이건 argc와 동일할 거예요
Arg c는 전달된 변수예요 이게 뭘 나타내는지
보여드리죠
다른 변수를 생성하겠습니다
인수를 나타내는 다른 변수요 이건 arg v0과 같을 거예요
arg v00 구문은 신경 쓰지 마세요
네 네 이 코드가 13번째 줄에 하는 일은 인수 1을
설정합니다 프로그램 이름과 동일한 변수죠
네 그런 다음 다른 걸 하면 캐릭터 별표 인수 2 그걸 arg
v에 동일하게 설정합니다 sub1에요
그런 다음 이 데이터를 프린트할 거예요
네 인수의 개수를 프린트하고 값 변수를 프린트하려고
합니다 이 형식을 사용해야 합니다
%d라고 하죠
그리고 그런 다음 쉼표 다음에 인수의 개수라고 하죠
이게 디스플레이하기 원하는 변수니까요
또 다른print문이 있는데 argument
1을 출력할 거에요.
프로그램 이름에 딱 맞네요
% 기호예요 다시 % 기호가 있죠 % s라고 하겠습니다 왜냐하면
이건 문자열이니까요 이 시점에서 이해하는 건 중요하지 않아요
종종 예시를 시연할 때 변수의 값을 출력하고
싶죠
네 16과 17의 printf 구문은 메인 라인에 전달된
변수의 값을 출력합니다 명령줄 인수죠 그래서 디스플레이하는
겁니다
마지막으로 디스플레이할 것은 두 번째
인수입니다 이건 명령줄 인수죠 프로그램 이름에 덧붙여서요
이게 우리가 보여드릴 두 번째 주장이에요
그런 다음 0을 리턴하죠
프로그래밍이 아주 간단해요 기능이 많지는
않다는 거죠
기본적으로 전달된 함수에서 데이터를 얻고 그
데이터를 보여주죠
그래서 제가 데이터를 프로그램에 전달할 수 있다고 했죠
이 프로그램을 부정할 때 메뉴 옵션을 더블 클릭하는
걸 기억하세요
네 하지만 실제로 벌어지는 일은 명령을 실행하는 거죠 더블 클릭하거나
EXe를 실행하거나 아니면 Linux나 Unix에선 .out을 하죠
프로그램을 실행할 때 데이터를 전달할 수 있어요
네 그래서 명령을 실행하는 게 아니라 메뉴를 실행하는 거죠 통합 개발 환경을
통해 데이터를 전달해야 합니다
다행히 코드블록이 좋은 방법을 갖고 있죠
네 명령줄 인수로 데이터를 넘기려면
프로젝트로 가기만 하면 돼요 강조 표시하고
강조하고 네, 네
여길 보시면 창문이 나타납니다 여기선 기본적으로 인수를
말할 수 있죠
여기에 원하는 대로 아스매니를 넣을 수 있어요
시작하죠
그냥 제 이름을 Jason이라고 할게요.
그 인수 데이터를 제 프로그램에 넘길 거예요 프로그램이
실행되면요
확인 누를게요
고아헤드로 이걸 컴파일할게요
그걸 실행하면 인수의 개수 값이 어떻게
될까요?
네 음 전달된 인수 하나가 있어요 프로그램
이름이죠 그리고 Jason을 전달하고 있어요 이건
2와 같아야 해요 숫자 2요
네 변수 1이 프로그램 이름이 될 거예요 이게 프로그램
이름이어야죠 이름이 뭐든 간에요 이게 테스트를 생성할지는 기억이
안 나지만∙∙∙
인수 2는 Jason이어야 합니다 제가 전달하는 것이니까요
네 그래서 이제 실행을 하면 어떻게 되는지 보죠 실행을 하면 인수의 수가
2라는 걸 알 수 있죠
네 네 Argument 1은 프로그램 이름이고 형식을 읽기가 아주 어려워요
새 줄이 없거든요
그럼 이걸 다시 시작하면서 새 대사를 추가해 볼게요
뉴라인스를 어떻게 프린트할 수 있을까요?
방출과정을 사용할 수 있어요 백슬래시 n이죠
네 첫 프린트 문에서는 %d 뒤에 백슬래시 n을
추가하고 다음 문에서는 백슬래시 n을 추가합니다
그래서 출력로서 가독성이 더 높죠
좋아요, 이제 저장하고 다시 빌드하고 실행해 이번엔 결과가
어떤지 보죠
읽기 더 쉬우면 좋겠네요
실행해 보면 훨씬 읽기
쉬운 선들이 있죠
네 인수의 수가 2로 표시됩니다 앞서 언급했듯이 첫 번째 인수는
프로그램 이름이죠 두 번째 인수는 제가 통과시킨 거예요
인수 1은 사실 프로그램 이름으로 표시됩니다 제 전체 디렉토리
구조죠 그런 다음 테스트해요 엑세예요
argument 2는 Jason이에요. ID에 그렇게 설정했거든요.
네 네 이제 프로그램 인수를 수정할
수 있습니다 프로젝트 메뉴 옵션으로 가서 프로젝트: set 프로그램 인수로 가 이걸 수정할 수
있습니다
이걸 바꿀 때 다른 걸로 바꾸거나 아무 말이나 할게요
그렇죠 이제 그걸 실행하면 프로그램에 전달되는
데이터는 뭔가 달라져요 될 거예요 실행만 하면 되죠 재검토할
필요 없어요
지금은 그냥 전시돼 있죠
그래서 사용자에게 요청하지 않고 프로그램에 데이터를 넘길
수 있는 방법이죠 구체적으로
그냥 입력하고 프로그램에 넘기면 돼요
다양한 논거를 제시할 수 있어요
그냥 통과하면 안 돼요
네 더 패스하고 싶다면 프로그램 인수를
설정하고 새 줄로 나누면 돼요 물론 그걸 사용하려면 어레이에서 액세스해야 하지만
많이 통과시킬 수 있죠
네 사용자가 키보드에 뭔가를 입력하도록 하지 않고도 프로그램에 데이터를 전달할
때 유용하죠
이렇게 하지 않으면 프로그램이 일시 정지하고 이렇게 말할 거예요
사용자 뭔가 입력하세요
그런 다음 사용자가 뭔가를 입력하면 변수에
그걸 저장해야 하죠 그런 다음 계속 실행해야 해요
이렇게 하면 사용자에게 뭔가 요구할 필요가 없죠 프로그램의
일부로 넘기기만 하면 돼요
이게 commandline 인수예요
네 네 배열 같은 다른 개념은 신경 쓰지 마세요 포인터의 별표가
보이죠 걱정하지 마세요
명령줄 인수를 보여주고 있어요
함수의 매개 변수를 통해 액세스할
수 있어요
하지만 중요한 건 어떻게 하느냐죠
다른 프로그램에 유용하게 쓰일 겁니다 변수와
연관이 있죠
고마워요