2012-11-08 4 views
1
FILE * in; 
in = fopen("file1.bmp", "rb"); 
if (in == NULL) { 
    perror("file1.bmp"); 
    return ; 
} 

* .bmp 파일을 열 수없는 이유는 무엇입니까? fopen()이 NULL을 반환 중입니다..bmp 파일을 열려고 할 때 NULL을 반환하는 fopen (C++)?

누구나 BMP 파일을 성공적으로 열 수있는 방법을 알려 주실 수 있습니까? 다른 C++ 함수를 사용해야합니까? 예, plz 알려주세요. 예가 매우 도움이 될 것입니다. VS2008에서 VC++을 사용하고 있습니다.

미리 감사드립니다.

+0

(바이너리 모드 문제는 제외). 파일 열기가 실패하는 여러 가지 이유 중 하나 인 Chris가 아래에 명시한 문제 중 하나에 해당하지 않습니다. – john

답변

7

파일이 없거나 파일 권한을 읽을 수 없습니다.
작업 디렉토리에 문제가있을 수 있습니다. 완전한 경로로 파일을 열어보십시오.
또한이 일반 C 질문

+2

나는 자신의 IDE에 작업 디렉토리를 구성하지 않은 2 센트를 썼다. – Spidey

+0

fopen이 NULL을 반환하고 있습니다. 특정 오류 메시지가 단서가 아닙니다. 예, BMP 파일의 전체 절대 경로를 제공하여 시도했습니다. BMP 파일을 마우스 오른쪽 버튼으로 클릭하고 읽기 Onlt 확인란을 선택했는지 확인했습니다. 이유가 무엇인지 추측 할 수 없습니다. – codeLover

+2

fopen이'NULL'을 반환하면 유일한 옵션은 파일 권한, 파일이 존재하지 않거나 파일 시스템 오류입니다. Windows에서 프로그래밍하는 경우 백 슬래시를 이스케이프 처리하거나 경로 구분 기호로 일반 슬래시를 사용해야합니다 (예 :'fopen ("c : \\ test \\ file1.bmp", "rb"); 또는'fopen "c : /test/file1.bmp", "rb"); ' – Chris

2
#include<stdio.h> 
#include <errno.h> 

int main() 
{ 
FILE * in; 
in = fopen("file1.bmp", "rb"); 
if (in == NULL) { 
    perror("file1.bmp"); 
    printf("Error %d \n", errno); 
    return ; 
} 

}

이 방법은 errno을보고 여기에서 그 의미를 찾을 사용하고 http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html .BMP 파일을 열고 다른 종류의를 열어 사이에는 차이가 없습니다

관련 문제