#include<stdio.h>
void main(int argc, char* argv[]){
int i;
FILE *rfp;
if(argc != 2){
// argc 가 2일 때 매개변수가 1개인 이유는
// c 프로그램을 실행할 때 소스명까지 매개변수로 받기 때문
printf("\n-- 매개변수를 1개 사용하세요 --\n");
return;
}
// 첫 번째 매개변수로 넘어온 것을 읽기 모드로 연다.
rfp = fopen(argv[1], "r");
for(;;){
//파일의 내용을 한 줄 읽어옴
fgets(str,199,rfp);
//만약 파일의 끝을 만나면 무한루프를 종료
if(feof(rfp))
break;
// 읽을 내용 출력
printf("%s",str);
}
fclose(rfp);
}
argc로 매개변수의 개수를 확인하고 argv로 매개변수로 받은 값을 처리한다.
도스 명령어 중 copy 명령어와 동일하게 텍스트 파일을 복사하는 프로그램을 작성하시오.
실행결과
정답
#include<stdio.h>
void main(int argc, char *argv[]){
char str[200];
FILE *rfp;
FILE *wfp;
if(argc != 3){
printf("매개변수를 2개 입력해주세요\n");
return;
}
rfp = fopen(argv[1],"r");
wfp = fopen(argv[2],"w");
while(1){
fgets(str,199,rfp);
if(feof(rfp))
break;
fputs(str,wfp);
printf(str);
}
fclose(rfp);
fclose(wfp);
}