[CS50] Array - 명령행 인자
명령행 인자
학습 목표
명령행 인자를 받는 프로그램을 C로 작성할 수 있다.
핵심 단어
- 명령행 인자
- argv
- argc
여태껏 많이 사용해온 main 함수를 보다 자세히 들여볼 때가 왔다.
main도 그 형태를 보면 하나의 함수임을 알 수 있다. 이젠 더이상 main() 안에 기계적으로 void라고 입력하는 대신 아래 코드와 같이 argc, argv 를 정의해보자.
#include <cs50.h>
#include <stdio.h>
int main(int argc, string argv[])
{
if(argc == 2)
{
printf("hello, %s\n", argv[1]);
}
else
{
printf("hello, world\n");
}
}
여기서 첫번째 변수 argc는 main 함수가 받게 될 입력의 개수이다.
그리고 argv[]는 그 입력이 포함되어 있는 배열이다. 프로그램을 명령행에서 실행하므로, 입력은 문자열로 주어진다.
따라서 argv[] 는 string 배열이 된다.
argv[0]는 기본적으로 프로그램의 이름으로 저장된다.
만약 하나의 입력이 더 주어진다면 agrv[1]에 저장될 것이다.
예를 들어 위 프로그램을 "arg.c"라는 이름으로 저장하고 컴파일 한 후 "./argc"로 실행해보면 "hello, world"라는 값이 출력된다.
명령행 인자에 주어진 값이 프로그램 이름 하나밖에 없기 때문이다.
하지만 "./argc David"로 실행해보면 "hello, David"라는 값이 출력된다.
명령행 인자에 David라는 값이 추가로 입력되었고, 따라서 argc는 2, argv[1]은 "David"가 되기 때문이다.
Author And Source
이 문제에 관하여([CS50] Array - 명령행 인자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seize/CS50-Array-명령행-인자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)