C언어 수업정리/4월 수업정리

4월 12일 main()함수의 인수

송시혁 2013. 4. 12. 16:47






#include <stdio.h>
int main(int inum, char *command[])
{
  int icnt;
  for(icnt=0; icnt<inum; icnt= icnt+1)
  {
    printf("각 문자열을 가르키는 포인터: %s\n", command[icnt]);
    
  }
  printf("행의 문자열의 갯수: %d\n", inum);
  return 0;
}
inum은 실행 문자열의 갯수.
command[]각 실행 문자열을 가르키고 있는 포인터배열.
따라서 출력은 실행 이름과 실행이름 뒤의 있는 숫자나 문자의 개수와
이름이 출력된다. 예를 들어서, 파일이름이 a이고  a 5라고 입력하면
a 5가 출력되고 갯수의 2가 출력된다.
a 1 2 3이면 a와 3이 입력되고 4가 출력된다.

아래는 조금 어려운 예제


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int num;
  
  if(argc != 2)
  {
    printf("You enter the error\n");
    exit(-1);    //비정상종료. exit()함수사용. 여기에 return을 써도 됨.
  }
  num = atoi(argv[1]);
  printf("Answer : %d\n", num *2);
  return 0;
}

argc가 2가아니라면 즉, 실햏시 인자를 2개 입력이외에는
에러라는 메시지 
출력한다.
atoi()함수는 문자열을 정수로 출력 즉 "10"이라면 숫자 10이 아닌 컴퓨터상에는
문자열이다. 그것을 정수로 변환하는 함수가 atoi()이다.


아래소스는 그냥 참고 ㅋㅋㅋㅋㅋ
#include <stdio.h>
int main(int argc, char *argv[])
{
  int i;
  printf("argc : %d\n", argc);
  for(i= 0; i<argc; i= i+1)
  {
    printf("argv[%d] = %s\n", i, argv[i]);

  }


  return 0;
}