1. 기본 - Command line argument

#include <stdio.h>

int main(int argc, char* argv[])
{
	int i;
    
    printf("Hello World!!\n");
    printf("agrc = %d\n", argc);
    
    for (i = 0; i < argc; i++)
    	printf("argv[%d] = %s\n", i ,argv[i]);
    
    return 0;
}

exe파일을 실행하여 파일이름을 만약에 CLA.exe로 지었다고 가정하면

cmd로 파일경로를 찾아 들어가서, CLA.exe를 검색하면 

실행결과

Hello World!!

argc = 1 

argv[0] = CLA.exe

 

추가로 CLA.exe에 I Love You Always라고 적을 시

cmd에

CLA.exe I Love You Always 

입력 시 

실행결과

Hello World!!
argc = 5
argv[0] = CLA.exe
argv[1] = I
argv[2] = Love
argv[3] = You
argv[4] = Always

 

2. 실습 - Command line argument를 사용하여 아래의 table을 만족시키는 프로그램을 만드시오.

명령행 입력파일 출력파일 기능
frw4 표준 파일 표준 파일 키보드로 입력한 내용을 화면으로 출력
frw4 @ test.txt 표준 파일 일반 파일 키보드로 입력한 내용을 일반파일로 출력 
frw4 test.txt 일반 파일 표준 파일 일반파일의 내용을 화면으로 출력
frw4 test1.txt test2.txt 일반 파일 일반 파일 일반파일의 내용을 일반파일로 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>

int main(int argc, char* argv[])
{
   FILE* fp1;
   FILE* fp2;
   int c;
   int i = 0;

   if (argc == 1)
   {
      while ((c = getchar()) != EOF)
         putchar(c);
   }
   else if (argc == 2)
   {
      fp1 = fopen(*(argv + 1), "r");
      if (fp1 == NULL)
      {
         printf("File error\n");
         exit(1);
      }
      else
      {
         while ((c = getc(fp1)) != EOF)
            putchar(c);
            fclose(fp1);
      }
   }

   else if (argc == 3)
   {
      if (strcmp(*(argv + 1), "@") == 0)
      {
         fp1 = fopen(*(argv + 2), "w");
         if (fp1 == NULL)
         {
            printf("File Error\n");
            exit(1);
         }
         else
         {
            while ((c = getchar()) != EOF)
               putc(c, fp1);
               fclose(fp1);
         }
      }
      else
      {
         fp1 = fopen(*(argv + 1), "r");
         fp2 = fopen(*(argv + 2), "w");
         if (fp1 == NULL)
         {
            printf("File error\n");
            exit(1);
         }
         else
         {
            while ((c = getc(fp1)) != EOF)
               putc(c, fp2);
            fclose(fp2);
         }
      }
   }
   else
   {
      printf("Wrong input\n");
      exit(1);
   }
   return 0;
}

 

실행결과

+ Recent posts