컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Java/자바] 16진수 상수 FF, 10 표현 방법; Hexadecimal Literal...텍스트 브라우저, 리눅스/윈도우용; Text Browse LYNX도스박스/도스창 전체 화면 모드 핫키; DOSBox, DOS Full-Screen Hot ...배치파일 텍스트 출력 방법. 글자,문자열 쓰기, 프린트 함수; Batch File Prin...배치파일 예약어, 키워드 목록; Batch File Keyword ListC언어] 디렉토리 지우기, 폴더 삭제 함수 사용법; Delete Directory, Rem...C언어] 파일 지우기, 파일 삭제 함수 사용법; Delete File, Remove Fil...C언어] 내일 날짜 구하기; 다음날 날짜 계산 출력 함수; Get Tomorrow Date...C언어] 어제 날짜 구하기; 전날 날짜 계산 출력 함수; Get Yesterday Date...Java/자바] 내일 날짜 구하기; 다음날 날짜 계산 출력 메서드(함수); Get Tomo...

C언어] argc, argv 파라미터(인수; 매개변수) 사용 예제; main Function Parameter

Wednesday, December 13, 2006

각 함수에는 인수(파라미터)를 지정할 수 있습니다. 프로그램 본체인 main() 함수에도 당연히 인수를 지정할 수 있습니다. 메인 함수의 인수는, 운영체제에서 그 프로그램을 실행할 때 지정해 준 "옵션"입니다.

예를 들어 도스창(명령 프롬프트;CMD.EXE)에서

dir /?

이렇게 하면 dir 명령에 대한 도움말이 출력됩니다. 이때 "/?" 라는 문자열이 옵션이 되는 것입니다.



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

argc 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 곳입니다.

argv 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션의 문자열들"이 실제로 저장되는 배열입니다.


다음 예제를 보면 쉽습니다.

int argc, char* argv[] 사용법 예제; main() Option Example


소스 파일명: 0.cpp
#include <stdio.h>
#include <stdlib.h>  // exit()

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


  // 옵션 지정하지 않았을 때 에러 출력하고 종료
  if (argc == 1) {
    fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr);
    exit(1);
  }


  // 옵션 개수 출력
  printf("%d 개의 옵션을 입력하셨군요\n\n", argc - 1);


  // 옵션 배열의 요소들을 하나씩 출력
  for (int i = 1; i < argc; i++)
    printf("argv[%d] = %s\n", i, argv[i]);

  return 0;
}



컴파일 및 실행 결과 화면:
D:\Z>cl /nologo 0.cpp
0.cpp

D:\Z>0.exe
에러! 옵션을 입력하지 않으셨군요...

D:\Z>0.exe 111 222
2 개의 옵션을 입력하셨군요

argv[1] = 111
argv[2] = 222

D:\Z>0.exe AAA BBB CCC
3 개의 옵션을 입력하셨군요

argv[1] = AAA
argv[2] = BBB
argv[3] = CCC

D:\Z>0.exe 자장면 탕수육 짬뽕 불도장 팔보채
5 개의 옵션을 입력하셨군요

argv[1] = 자장면
argv[2] = 탕수육
argv[3] = 짬뽕
argv[4] = 불도장
argv[5] = 팔보채

D:\Z>



옵션을 하나도 입력하지 않으면 argc 는 1이 됩니다. 즉 argc 는 항상 1 이상입니다. 0이 되지 않습니다.

위의 경우, argv[0]은 0.exe 가 됩니다. 즉 argv 의 첫번째 요소는 항상 "프로그램 자신의 파일명"입니다.

따라서 옵션의 정확한 개수를 구하려면 argc 에서 1을 마이너스해 주어야 합니다.




Q: 비주얼C (VC++) 에서만 되나요?


모든 C컴파일러에서 다 됩니다.






envp 라는 이름의, 3번째 파라미터도 있습니다: ▶▶ C언어 VC++] 컴퓨터 환경변수 구하기/출력 방법; Get-Print Environment Variable

3 Comments:
At 11:27 PM, Blogger MOS said...

구글에서 찾다가 좋은 글 보고 갑니다. 많은 도움이 되었어요 ㅎㅎ

 
At 3:29 PM, Blogger 기리기리기린 said...

수업하다 모르는게 나와서 검색해봤는데
탕수육먹고싶네요ㅋㅋ
도움됬습니다!감사합니다!

 
At 10:07 AM, Blogger 신인철 said...

한방에 해결했습니다 감사합니다

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top