전진하는 개발러

[C] fopen작동 안하는 경우 해결 본문

카테고리 없음

[C] fopen작동 안하는 경우 해결

어멘션 2023. 12. 5. 09:44

문제상황

if ((fp = fopen(BOARDFILEPATH, "r")) == NULL)
{
    printf("[ERROR] failed to open %s. This file should be in the same directory of SMMarble.exe.\n", BOARDFILEPATH);
    getchar();
    return -1;
}

 

main함수 안에 fopen 구문을 사용하는 상황에서

컴파일 오류는 없지만 제대로 파일오픈이 되지 않았다.

 

 

문제 원인과 해결

문제원인 : fopen_s대신 fopen를 사용했기 때문

 

결론부터 말하자면 fopen을 fopen_s로 바꾸고 그에 맞는 문법도 수정해준 후 다시 실행하니 해결이 되었다.

 

해결 :   fopen_s사용 및 코드문법 변경

fopen_s는 fopen에 FILE** Stream형식의 인수를 추가해주어야 실행이 되기 때문에

그에 해당하는 포인터 변수인 fp의 주소를 나타내는 &fp를 넣어주었다.