두개의 파일을 실행인수로 입력받아 input file의 내용을 output file로 복사한다.
fgets()와 fputs()를 사용한다.
사용법 : <usage> 실행파일명 [input file] [output file]
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 100 //버퍼사이즈
int main(int argc, char *argv[])
{
FILE *infile = NULL, *outfile = NULL; //파일포인터
char buffer[BUFFER_SIZE+1]=""; //임시버퍼
char *infilename = NULL, *outfilename = NULL; //파일이름을저장하는char *
/* 실행인수의개수가3개가되지않으면실행방법을알려주고종료*/
if(argc != 3)
{
printf("Usage : executefilename <infile> <outfile> \n");
exit(0);
}
infilename = argv[1]; //실행인수의input file을받아옴
outfilename = argv[2]; //실행인수의output file을받아옴
/* input file을읽기모드로오픈- 파일오픈실패시프로그램종료*/
if((infile = fopen(infilename, "r")) == NULL)
{
printf("File not open. \n");
exit(0);
}
/* output file을쓰기모드로오픈- 파일오픈실패시프로그램종료*/
if((outfile = fopen(outfilename, "w")) == NULL)
{
printf("File not open. \n");
exit(0);
}
/* 파일의끝이아닐때반복*/
while(!feof(infile))
{
fgets(buffer, sizeof(buffer), infile); //줄단위로읽어드림
fputs(buffer, outfile); //줄단위로출력
fseek(outfile, 0, SEEK_END); //output 파일의끝을로이동
sprintf(buffer, "\n"); //buffer에null문자추가
}
fclose(infile); //input file을닫음
fclose(outfile); //output file을닫음
return 0;
}
'컴&프로그래밍 > C' 카테고리의 다른 글
팩토리얼 수 구하기 (재귀함수) (0) | 2014.10.24 |
---|---|
피라미드 별찍기 (0) | 2014.10.12 |
정수부분, 소수부분 2진수 변환 (0) | 2014.10.11 |
이진검색 (0) | 2014.10.11 |
학생 정보 입력 받아 성적순으로 내림차순 정렬 출력 (1) | 2014.10.11 |
정수 입력하여 16진수 변환후 2씩 곱해가기 (0) | 2014.10.11 |
진법 계산 (0) | 2014.10.11 |
대소문자 바꿔서 출력 (0) | 2014.10.11 |
3n + 1 문제 (The 3n+1 Problem) (0) | 2014.10.11 |