파일 복사 프로그램
Programming/C 2013. 2. 15. 01:38 |/* strcat을 이용한 파일 복사 프로그램 */
#include<stdio.h>
#include<string.h>
int main(int argc, char* argv[])
{
int state;
char buf[100];
char bufCp[100];
//file open
FILE * file = fopen(argv[1], "rb");
if(file == NULL){
puts("file open error!\n");
return 1;
}
//문서의 내용을 bufCp 배열에 저장.
strcpy(bufCp, "");
while(1)
{
fgets(buf, sizeof(buf), file);
if(feof(file) != 0)
break;
strcat(bufCp, buf);
}
//file close
state = fclose(file);
if(state != 0){
puts("file close error!\n");
return 1;
}
//file open
file = fopen(argv[2], "wb");
if(file == NULL){
puts("file open error!\n");
return 1;
}
//bufCp배열의 내용을 main함수 세번째 인자의 이름으로 파일로 만들어서 저장.
fputs(bufCp, file);
//file close
state = fclose(file);
if(state != 0){
puts("file close error!\n");
return 1;
}
return 0;
}
----------------------------------------------------------------------------------------------------------------
위의 코드와 결과는 같다.
/* FILE 구조체 변수 2개를 이용한 파일 복사 프로그램 */
#include<stdio.h>
int main(int argc, char* argv[])
{
char c;
int state1, state2;
FILE *sour, *dest;
//file open
sour = fopen(argv[1], "rb");
dest = fopen(argv[2], "wb");
if(sour == NULL || dest == NULL){
puts("file open error!\n");
return 1;
}
while(1)
{
c = fgetc(sour); //sour가 가리키는 문서의 단어를 읽어들여와서 c에 저장.
if(feof(sour) != 0)
break;
fputc(c, dest); //c가 가지고 있는 문자를 dest가 가리키는 문서의 쓴다.
}
//file close
state1 = fclose(sour);
state2 = fclose(dest);
if(state1 != 0 || state2 != 0){
puts("file close error!\n");
return 1;
}
return 0;
}
'Programming > C' 카테고리의 다른 글
C언어에서의 Token (0) | 2013.02.15 |
---|---|
메모리 관리와 동적 할당 (0) | 2013.02.15 |
Random Access 입력 및 출력: 파일 위치 지시자(File Position Indication) fseek함수 (0) | 2013.02.15 |
파일의 끝을 확인해주는 feof함수의 활용법 (0) | 2013.02.15 |
fprintf, fscanf함수를 이용한 구구단 프로그램 (0) | 2013.02.15 |