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

爲什麼我無法打開* .bmp文件。 fopen()返回NULLfopen試圖打開一個bmp文件(C++)時返回NULL?

任何人都可以幫助我如何成功地打開BMP文件。我應該使用其他一些C++函數嗎?如果是的話,請讓我知道。一個例子會非常有幫助。我在VS2008中使用VC++。

在此先感謝。

+0

有打開.bmp文件,並打開任何其他類型之間沒有什麼區別的文件(除了二進制模式問題,你已經對了)。文件打開失敗的原因之一是失敗的,這可能是Chris在下面指出的問題之一。 – john

回答

7

該文件不存在,或者您無法讀取它(可能是文件權限)?
您可能有工作目錄問題。嘗試使用完全限定的路徑打開文件。
另外這是一個純C的問題

+2

我打賭我的2美分,他沒有在他的IDE上配置工作目錄。 – 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