c언어

C언어 - Command line argument 를 사용

pi92 2021. 3. 8. 18:55
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


//명령행							입력 파일	출력 파일	기능
//frw							표준 파일	표준 파일	키보드로 입력한 내용을 화면으로 출력
//frw  @  test.txt				표준 파일 	일반 파일	키보드로 입력한 내용을 일반파일로 출력
//frw  test.txt					일반 파일	표준 파일	일반파일의 내용을 화면으로 출력
//frw  test1.txt  test2.txt		일반 파일	일반 파일	일반파일의 내용을 일반파일로 출력


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

	int c;
	FILE *fp1, *fp2;

	if (argc == 1) {   // frw즉 파일을 실행 할 경우는 argc가 1이 된다. 키보드로 친 글자들이 모니터에 출력.
		while ((c = getc(stdin)) != EOF)
			putc(c, stdout);
	}
	else if (argc == 2) { // frw와 텍스트 파일을 입력 하였을 경우 입력한 텍스트파일을 모니터에 출력한다.
		fp1 = fopen(argv[1], "r");
		while ((c = getc(fp1)) != EOF)
			putc(c, stdout);
	}
	else if (argc == 3) { // @가 입력될경우 3번째 텍스트 파일에 입력한 내용을 복사한다.
		if (!strcmp(argv[1], "@")) {
			fp1 = fopen(argv[2], "w");
			while ((c = getc(stdin)) != EOF)
				putc(c, fp1);
		}
		else {  // 파일을 두개 입력하였을 경우 1번에 있는 파일의 내용을 2번에 입력한다.
			fp1 = fopen(argv[1], "r");			
			fp2 = fopen(argv[2], "w");
			while ((c = getc(fp1)) != EOF)
				putc(c, fp2);
		}
	}
	else {
			printf("wronginput\n");
			exit(1);
		}
	}

return 0;
}