c語言中的fwrite(或是fopen)的問題,追加寫入就錯

時間 2022-02-16 20:14:47

1樓:一團亂

樓主這句有問題for(i=0;str[i]!='/0';i++); ,應該為for(i=0;str[i]!='\0';i++); 其他沒問題啊。

#include

#include

int main()

}printf("請輸入檔案正文,按回車結束:\n");

gets(str);

for(i=0;str[i]!='\0';i++);

size = fwrite(str,i,1,fp);

if(size!=1) /*為什麼不能追加,只能建立?追加寫入就錯誤*/

fclose(fp);

return 0;}

2樓:緣接千里

for(i=0;str[i]!='/0';i++); 中的"/0"改成"\0"就行了

3樓:星月小木木

追加hello world的示例:

#include

#include

int main()

fseek(fp, 0, seek_end);

char sz_add = "hello world\n";

fwrite(sz_add, strlen(sz_add), 1, fp);

fclose(fp);

return 0;}

c語言中fwrite函式輸入時會覆蓋檔案以前的資料嗎?

4樓:哥們兒會_臭臭

fwrite寫入時覆蓋不覆蓋原來檔案是用引數決定的

fwrite原型:

size_t fwrite(const void* buffer, size_t size, size_t count, file* stream);

返回值:返回實際寫入的資料塊數目

(2)size:要寫入內容的單位元組數;

(3)count:要進行寫入size位元組的資料項的個數;

(4)stream:目標檔案指標;

(5)返回實際寫入的資料項個數count。

是否覆蓋決定於stream

file *stream=fopen("檔名","mod");

其中mod如下:

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

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

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

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

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

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

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

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

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

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

c語言中 if((fp=fopen("f:\\bb.txt","ab"))==null) 啥意思

5樓:

以「二進位制追加方式」開啟f盤根目錄下的檔案bb.txt,如果開啟成功的話就把該檔案的資訊結構體位址賦給檔案指標fp,如果開啟不成功的話就將檔案指標fp置為無效(null);並用fp==null來判斷一下是否開啟成功了。

6樓:候補小情人

if((fp=fopen("f:\\bb.txt","ab"))==null)

fp是檔案指標

fopen 是開啟檔案

然後是檔案的位址 以及開啟方式

這裡這句話的意思是

如果開啟這個檔案 為空 然後下面 顯示 開啟檔案作物 退出這裡是做個判斷 也相當於 開啟檔案

還有這個段**有個比較致命的錯誤

最後沒有關閉檔案

相當於沒儲存

應該加個fclose(fp);

c語言fwrite寫檔案失敗,C語言中的fwrite(或是fopen)的問題,追加寫入就錯誤。

file fp fp fopen 絕對路徑 w if fp null fwrite fp 如果出錯,請先看報錯時fopen出現的資訊,是不是不存在檔案或段的意思 描述 清楚一些,檔案是否存在 檔案開啟是否正確 是否有寫許可權 strerr和errorno結合,可以查出原因 這個程式原則意義上是沒有問...

c語言中 bool的用法,C語言中 bool的用法

布林型 bool 變數的值只有 真 true 和假 false 布林型變數可用於邏輯表示式,也就是 或 與 非 之類的邏輯運算和大於小於之類的關係運算,邏輯表示式運算結果為真或為假。bool可用於定義函式型別為布林型,函式裡可以有 return true return false 之類的語句。布林型...

關於c語言中scanf的問題,關於C語言中scanf的問題

scanf後面的 f格式,必須與輸入格式相一致 按您的輸入,中間用逗號,與scanf中 f之間格式不符,結果只接收了第1個變數,後面沒接收,因而是零 有的編譯器會是隨機數 正確寫法 1 如果 scanf中 f之間用空格,即 scanf f f f a,b,c 應該輸入1 2 3 中間有空格 2 如果...

c語言中的二維陣列問題,c語言問題 c語言中二維陣列在記憶體中怎樣儲存?

目的是將緩衝區中輸入流中資料清除,可以使用 fflush stdin 清除資料 gets函式會把前面在scanf函式的輸入結束符即回車當做第乙個字串資料的結束符接收,因此不加gets s 就會導致資料個數少乙個。當然使用gets s 會提前接收了回車,因此也是起到同樣的作用。你程式函式中有個錯誤,p...

c語言中eof的用法,c語言中EOF的用法

eof其實是整數 1,用於從檔案讀取資料的時候表示已經超越檔案末尾這種錯誤狀態。如果io操作的結果是eof,一般就意味著這次io是失敗的。eof一般作為檔案的結尾標記。其值是 1,在c語言中的標頭檔案stdio.h中定義如下 end of file constant definition defin...