우선..
fp1 = fopen("argv[1]","r");
이렇게 하면..argv[1] 이라는 파일명을 오픈하는게 됩니다.
이런 파일이 없으므로 당연히 에러가 날겁니다.
정확하게는
fp1 = fopen(argv[1],"r");
로 해주어야 하는데..
이또한 argv[1]이 void FILEOPEN_1(void) 함수내에 없으므로
에러가 날겁니다.
오픈할 파일명을 FILEOPEN_1 함수의 파라미터로 받아들이세요..
심종현 님이 쓰신 글 :
: #include<stdio.h>
: #include<stdlib.h>
:
: FILE *fp1,*fp2;
:
: int main(int argc,char *argv[])
: {
: if(argc!=4){
: printf("명령어 원본파일 복사파일 줄수 순서로 입력해!/n")
: return -1;
: }
: FILEOPEN_1();
: FILECOPY(fp1,fp2);
: FCLOSE();
: }
:
: void FILEOPEN_1(void)
: {
: fp1 = fopen("argv[1]","r");
: fp2 = fopen("argv[2]","w");
: }
:
: void FILECOPY(char fil_1[],char fil_2[])
: {
: int a,line_number;
: char ch;
:
: a = atoi(argv[3]);
: line_number=0;
:
: while(feof(fil_1)==0){
: ch=fgetc(fil_1);
: putchar(ch);
: if(ch=='\n'){
: line_number++;
: if(line_number==a)break;
: }
: fputc(ch,fil_2);
: }
:
: void FILECLOSE()
: {
: fclose(fp1);
: fclose(fp2);
: }
|