프로그래밍

 3198, 1/160 회원가입  로그인  
   ERIC910903
   http://blog.naver.com/eric910903
   함수(Function) 안에서 프로그램 전체를 어떻게 끝내나요?

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2987 [복사]


안녕하세요?
Eric입니다.

다른것이 아니라..

Function 안에서  return 0를 할경우에는
프로그램 전체를 끝내고 싶은데..
다른 함수에 있는  cout 에 있는문장이 나옵니다..

프로그램 기능은

Main() 안에는 함수call만 있고
Function 은 밑에 적었습니다.

문제가 되는 function 안에는

프로그램 사용자가 in file (ifstream)파일의 위치를 적는것인데..

만약 위치가 틀리거나.. 스펠링이 틀리면..
return 0;

아니면,
개속..

이라는 프로그램을 만들었는데..
프로그램이 개속 다른 function 에 있는  cout를  표시를 하네요?



제가 하고 있는 프로그램은 학교 프로잭트로 너무 길어서 다는 못 올리지만..
문제가 되는 부분만 올리겠습니다..


char getFileName(ifstream& Ifile, char Location[])
{
        cout << "Input Path for Text File" << endl;
        cin.getline(Location,Size);

        Ifile.open(Location);
        if(!Ifile)
        {
                cout << "Sorry!! Wrong Path!! End of Program !!" << endl;
                return 0;
        }
        else
        {
            cout << "Correct Path!! Access Successful" << endl;
        }

        return 0;
}


이 것이 바로 문제 되는 함수(function)인데요.
return 0이 2개 이유는
하나만if 형식에 쓰면..
오류 Control reaches end of non-void function 라고오류가 남니다.. (적확하게 오류 보다는 WARNING. 주위입니다)
warning주위는 곧 문제가 된다는 말에..;;

저는 바로 위치가 틀리거나, 스페릴이 오류가 나면..
(다른 함수(function) 에 있는  cout 에 있는 문장을 보고 싶지 않고, 바로 프로그램을 끝내고싶습니다)

뭐가 문제 인가요?





  Hit : 5585     Date : 2011/05/08 07:42



    
asdwho return0 대신 exit(1) 혹은 exit(0)을 쓰셔도 상관없을듯 하네요 ㅎㅎ

아니라면 특정값을 리턴하여 부모함수가 종료하게 하는 방식으로 해도 괜찮을 것 같구요.
2011/05/08  
/x7375696e6567 asdwho 님이 말씀하신걸 조금더 자세하게 ~~

function(int a) {
if(a < 0)
return -1;
else
return a * a;
}
이런 함수가 있다고할때
int a = -1;
if(function(a) == -1)
return 0;
else
~~~~~~

이런식으로 함수에 특정 리턴값을 설정해서 끝내시는게 좋을 것같네요

근데 쓰다보니까 원하시는게 이건지 잘 모르겠네요 ㅋㅋ
2011/05/08  
ERIC910903 return 대신
혹시나 해서

exit(0)를 사용해보니깐...똑같은 결과 였거든요..
하지만,
exit(1)를 하던가..
아님 특정한 값을 내주어서 종료 하는것도 가능하겠군요.
일단 답변 감사합니다.
2011/05/08