[완료]메인에서 인자를 받아서 다른 함수로 바로 넘길려면??

feelsocrazy의 이미지

파일 입출력 관련해서......궁금한 부분이 있어서 그러는대요......;;;;;

int main(int argc, char **argv) <-여기서 파일을 2개를 열건대요.......
{
FILE *fp;
fp = fopen(argv[1], "r");
........
fclose(fp);
fp = fopen(argv[2], "r");
.........
fclose(fp);
이렇게 메인에서 이걸 안하고......다른 함수에서 이걸 하고 싶거든요......

그래서

함수를
int load(*argv[1])
{
FILE *fp;
fp = fopen(argv[1], "r");
.....
} 게 했거든요............

main에서는
load(&argv[1]); 이렇게 넘겼구요........컴파일은 대는대.....세그먼트 오류가 나서.....뭐가 문제인지 몰라서
못 잡겠내요.........ㅠㅠ

메인에서 2개 받아서.....안열고......바로 다른함수에서 처리할 수 있게 하는 방법은 어떻게 대나요???

d3m3vilurr의 이미지

FILE* load(char *fileName) {
    return fopen(fileName, 'r');
}
 
int main(int argc, char **argv) {
    FILE *fp1, *fp2;
    fp1 = load(argv[1]);
    fp2 = load(argv[2]);
}

이런식을 원하시는건가요?

아니면

void load(char **fileNames) {
    FILE *fp1, *fp2;
    f1 = fopen(fileNames[0], 'r');
    f2 = fopen(fileNames[1], 'r');
 
    //do something
    fclose(f1);
    fclose(f2);
}
 
int main(int argc, char *argv) {
    load(argv+1);
}

이런식이면 될것 같습니다. 확인은 안해서 몰라요=3=3

ikpil의 이미지

이렇게 하시면 되실거에요, 테스트 완료 했습니다.

void load(char *fileNames[]) 
{
    FILE *fp1, *fp2;
    f1 = fopen(fileNames[1], 'r');
    f2 = fopen(fileNames[2], 'r');
 
    //do something
    fclose(f1);
    fclose(f2);
}
 
int main(int argc, char **argv)
 {
    load(argv);
}

feelsocrazy의 이미지

여기서 막혀서....시작도 못하고 있었는대......이제부터......풀어야겠내요....ㅠ

feelsocrazy의 이미지

악~~ 대잖아.........감사합니다.....ㅠㅠ