fopen開啟檔案失敗求解,c語言fopen函式打不開檔案

2022-02-12 07:00:09 字數 5770 閱讀 9097

1樓:匿名使用者

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

2樓:個性青春我的選擇

fopen開啟檔案失敗,有兩個可能的原因:

1,相對路徑錯了;2,檔名命名的有問題,比如開啟fopen("1.txt","r");在相對路徑下建立文字檔案的的時候,將該檔案命名為1 就可以了,不要加字尾.txt。

3樓:雨晴時尚影視

【問題詳細內容】用fopen開啟二進位制檔案,先用wb+,如果成功開始讀寫,如果失敗用rb+開啟,然後讀寫,如果再失敗,退出程式,每次失敗都會返回getlasterror(),有時候成功,有時候兩次都顯示錯誤123。查詢後發現123是卷標或路徑的語法錯誤,首先針對的是同一檔案,其次用的路徑是windows傳給我的引數,但是有時會出錯,有時不會。是怎麼 回事?

【解答】檢查出錯的時候,是不是檔名中有空格,或者有中文。如果是,那麼就別用fopen了,用cfile類來代替吧。然後給程式裡增加一些除錯資訊,當出錯的時候,把檔名列印出來看看是否正確。

傳送方用的strlen()+1定義長度,這樣可以把字串尾部的結束符一起傳送過去

4樓:匿名使用者

你看看出錯的時候,是不是檔名中有空格,或者有中文。

如果是,那麼就別用fopen了,用cfile類來代替吧。

5樓:天天向上知識店鋪

你的檔案路徑應該是:

「g:\\tmp\\users.txt」

6樓:韌勁

fopen函式用來開啟乙個檔案,其呼叫的一般形式為:

檔案指標名=fopen(檔名,使用檔案方式);

「檔案指標名」必須是被說明為file 型別的指標變數;

「檔名」是被開啟檔案的檔名;

「使用檔案方式」是指檔案的型別和操作要求。

「檔名」是字串常量或字元陣列。

例如:file *fp;

fp=fopen("file a","r");

其意義是在當前目錄下開啟檔案file a,只允許進行「讀」操作,並使fp指向該檔案。

又如:file *fphzk

fphzk=fopen("c:\\hzk16","rb");

其意義是開啟c驅動器磁碟的根目錄下的檔案hzk16,這是乙個二進位制檔案,只允許按二進位制方式進行讀操作。兩個反斜線「\\ 」中的第乙個表示轉義字元,第二個表示根目錄。

使用檔案的方式共有12種,下面給出了它們的符號和意義。

檔案使用方式

7樓:ghos丶

fp是 file* 指標

if((fp=fopen("key.txt","r"))==null);

在後面加上一句,perror("why i could not open the file?\n");

8樓:匿名使用者

file = false;

while(!file)

9樓:樂樂不褥羊毛

解除安裝重新啟動,手機重啟試試

c語言fopen函式打不開檔案

10樓:刺友互

1、新建乙個fopen函式的使用專案。

2、包含需要用到的標頭檔案。

3、輸入_tmain函式。

4、在msdn上,檢視fopen的函式原型。

5、輸入fopen函式。

6、定義乙個file型別的指標變數f,並接受返回值。

7、使用if語句判斷檔案是否開啟成功。

8、按快捷鍵f5,執行程式,檢視結果。

11樓:go陌小潔

①檔案不存在;

②檔名錯誤,開啟檔案的名字應該寫成"c:\\file.txt",而不是"c:\file.txt";

③**錯誤;

fopen函式用於開啟檔案並獲取檔案的指標,以便對檔案進行操作。

函式原型:file * fopen(const char * path,const char * mode);

引數:path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

mode有下列幾種形態字串:

r 以唯讀方式開啟檔案,該檔案必須存在。

r+ 以可讀寫方式開啟檔案,該檔案必須存在。

rb+ 讀寫開啟乙個二進位制檔案,允許讀寫資料,檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建乙個二進位制檔案;只允許寫資料。

wb+ 讀寫開啟或建立乙個二進位制檔案,允許讀和寫。

ab+ 讀寫開啟乙個二進位制檔案,允許讀或在檔案末追加資料。

上述的形態字串都可以再加乙個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫以二進位制模式開啟檔案。如果不加b,表示預設加了t,即rt,wt,其中t表示以文字模式開啟檔案。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask值。

有些c編譯系統可能不完全提供所有這些功能,有的c版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統的規定。

返回值:

檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並把錯誤**存在errno中。

一般而言,開啟檔案後會做一些檔案讀取或寫入的動作,若開啟檔案失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。

示例:以唯讀方式開啟檔案

#include

#define f_path "d:\\myfile\\file.dat"

int main(void)

fclose(fp);

fp=null;//需要指向空,否則會指向原開啟檔案位址

return 0;}

12樓:金色潛鳥

如果開啟來讀,檔案不存在,或檔案路徑錯,或沒有檔案的訪問權。

如果開啟來寫,資料夾是否允許寫,檔案是否存在,但有寫保護。

file *fp;

fp = fopen(...);

用 返回的 fp 可以判斷 開啟是否成功: if (!fp) printf("open error!\n");

13樓:齊霸王在江湖夢

in = fopen("d:\\a.txt","r");

out = fopen("d:\\b.txt","w");

追問:那陣列為什麼不用加轉義字元啊?

追答:你用scanf函式的時候,當輸入\的時候,編譯器會自動認為是字元'\'

但是字串「d:\a.txt」裡面的『\』被認為是轉義字元的標誌。

這是它們的區別。

14樓:海盜船長娘娘

轉義字元 多加乙個 「\」。

15樓:

scanf輸入的分別為d:\a.txt d:\b.txt

改成d:\\a.txt 和 d:\\b.txt

16樓:匿名使用者

in = fopen("d:\a.txt","r");

out = fopen("d:\b.txt","w");*****************d盤下的檔案a.txt和b.txt,檔名不要加.txt。

php 中 fopen()開啟檔案(url)失敗是什麼原因?

17樓:匿名使用者

需要在php.ini中將相關配置開啟

fopen原型:

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

如果php認為filename指定的是乙個已註冊的協議,而該協議被註冊為乙個網路url,php將檢查並確認allow_url_fopen已被啟用。如果關閉了,php將發出乙個警告,而fopen的呼叫則失敗。

allow_url_fopen:本選項啟用了url形式的fopen封裝協議使得可以訪問url物件例如檔案。預設的封裝協議提供用ftp和http協議來訪問遠端檔案,一些擴充套件庫例如zlib可能會註冊更多的封裝協議。

注意:出於安全性考慮,此選項只能在php.ini中設定。

18樓:

手動驗證url位址是否存在。然後開啟php的錯誤提示資訊。看看他提示什麼原因

再者檢視下你的php.ini配置是否開啟了fopen功能。如果功能未開啟。或則被禁用的話。就不可能成功

19樓:

你可以試試file_get_contents,或者用curl

20樓:匿名使用者

fopen是開啟本地檔案的

linux中,使用fopen函式開啟檔案失敗

21樓:匿名使用者

你可以看下,在另乙個目錄的檔案你是否有訪問許可權,同乙個目錄下一般來說,你把他複製過來,這個檔案的擁有者(owner)就是你了,你是肯定可以訪問的。每個程式都有乙個當前目錄的環境變數,你在shell中執行程式時,shell程式就是你執行的程式的父程序,你的程式從shell程式中繼承了當前目錄,所以你只給定檔名時,當然開啟的就是當前目錄下的檔案了

22樓:匿名使用者

做個提示,如果你用的是虛擬主機,有可能這個函式被禁掉了

23樓:匿名使用者

這裡面有相對路徑和絕對路徑區分,

24樓:自學煩

1.路徑不正確

2.沒有訪問路徑的相應許可權(wrx)

在c語言中,使用fopen開啟檔案,操作成功和操作不成功兩種情況下函式的返回值分別是_________。

25樓:匿名使用者

這道題選【a.檔案指標,null】

如果使用fopen函式開啟檔案成功,則返回乙個有確定指向的file型別指標;

若開啟失敗,則返回null。

Coreldraw開啟大檔案失敗怎麼辦

我換過系統 也用了記憶體為1g以上的記憶體還是不行,請問是什麼原因?怎麼解決呢?答 不知你排的是書刊還是單幅的招貼海報宣傳紙,檔案體積竟會如此之大。就是檔案過大時會出現意想不到的bug,這是各個版本均存在的。建議排版時能少用 盡量少用位圖 能少用互動式效果盡量少用。另外,如果不是必須,沒必要做一比一...

C檔案開啟時候關於open 函式的問題

我就不知你來 情況拉,發源個正確的給你bai,有什麼問題就追問吧du include include include using namespace std string str1 d a.txt char buff 20 void filereadht string dex 我呼叫了這個函式zhi...

這道C語言選擇題怎麼做?求解釋,求解一道C語言選擇題解釋一下怎麼做出來的

沒有看到有語法錯誤,因為do while語句中間如果只有一句話時,可以省略那個 求解一道c語言選擇題 解釋一下怎麼做出來的 從題目可以看出第二個引數是乙個指標陣列 因為d選項不是乙個陣列 而a,b均為陣列 且可以作為指標陣列使用 c是指標 可以是陣列也可以是變數 唯獨d既不是指標也不是陣列 fun第...