참고 : GeeksforGeeks
int main() { /* ... */ }
c/ c++에서 가장 중요한 함수은 메인 함수는 return값으로 int 를 반환한다
오늘의 주제 "command-line arguments 는 commnad-line shell 오퍼레이팅 시스템 안에 시스템이름 다음으로 오는것으로 표기법은 많이본 아래와 같은 형식을 가진다. 다른 사람이 짜놓은 프로그램을 보면 뭔가했는데 간단히 알고 짚고넘어가면 좋을듯하다.
int main(int argc, char *argv[]) { /* ... */ }
int main(int argc, char **argv) { /* ... */ }
간단한 설명으로는 코드를 돌리기위해 지정된 프로그램 이름을 선언해줘야하는데 이를 자동으로 입력해주는 역할을한다.
- argc : int형태로 몇개의 argument가 적용됬는지 알려준다. 기본적으로 첫번째는 program name이 넘겨지고 최소 1이상
- argv: argument array로 argv[0]은 프로그램 이름 , argv[1]은 첫번째 command line argument를 가지고 .. [n-1]번째 까지 있다
예제를 출력해보면
#include<stdio.h>
int main(int argc,char* argv[])
{
int counter;
printf("Program Name Is: %s",argv[0]);
if(argc==1)
printf("\nNo Extra Command Line Argument Passed Other Than Program Name");
if(argc>=2)
{
printf("\nNumber Of Arguments Passed: %d",argc);
printf("\n----Following Are The Command Line Arguments Passed----");
for(counter=0;counter<argc;counter++)
printf("\nargv[%d]: %s",counter,argv[counter]);
}
return 0;
}
결과

argv[0]은 프로그램 이름이고 다른 추가된 argument가 없어 no extra가 출력된다.
(Q. Argument를 추가 시킬려면 어떤 방식으로 될려나 ?) => command 에 입력하는순간 이게 들어가는구나!!

'Language > C++' 카테고리의 다른 글
| [인프런] 3일차- 알고리즘을위한 C++ (0) | 2023.04.29 |
|---|---|
| [인프런] 2일차- 알고리즘을 위한 c++ 기본 배우기 (0) | 2023.04.28 |
| [c/c++] Pointers to Arrays && Arrays as function arguments (0) | 2022.11.29 |
| [c++] 깊은 복사(Deep copy)와 얕은 복사(shallow copy) (0) | 2022.11.23 |
| [c++][pointer vs reference 정복 2] Pass by value vs Pass by reference (0) | 2022.11.18 |
댓글