c語言問題fwrite和,C語言問題fwrite和fprintf

時間 2022-01-21 09:15:27

1樓:匿名使用者

fwrite是向流中寫入資料,而fprintf是向流中寫入格式資料。兩者的共同點為向流中寫入資料,至於區別可以看看兩者的申明:

size_t fwrite(

const void *buffer,

size_t size,

size_t count,

file *stream

);int fprintf(

file *stream,

const char *format [,

argument ]...

);前者fwrite寫入流stream中的資料是buffer指定的內容,內容的位元組大小分別由size和count兩個引數來指定,因此寫入流stream中的內容有可能是亂碼,但是有效的資料。

後者fprintf寫入流stream中的資料則由argument來指定,並且這些argument的內容分別由format指定的格式來顯示,因此寫入stream的內容通常來說是文字字元流,當然,也允許寫入格式亂碼。

兩者都可以將文字寫入流stream中。比如:

fwrite("hello world!", 1, 12, fp);

與fprintf(fp, "%s", "hello world!");等價。

2樓:康邦世英悟

看你的**,只寫了一次,想反覆寫入自然要執行多次fwrite函式,執行次數如果已知一般用for迴圈,次數未知但是結束寫入的條件知道一般用while迴圈,舉個簡單例子:

inti=0;

for(i;

i<10;

i++)

fwite(outfile,strlen(outfile),1,fp);

這裡就會寫入10次outfile到檔案流fp中,如果開啟方式是w+(追加),自然能看到寫入的10次資料。

你在多次寫入時不要多次開啟,就是迴圈語句不要把fopen函式也包含起來。

寫入方式:w寫

+追加b二進位制

wb+:以追加寫方式開啟二進位制檔案,檔案存在則追加,不存在則建立。

3樓:匿名使用者

fwrite是把檔案中的資料讀出來,格式應該知道吧,fprintf是資料寫入到指標所指的檔案。

c語言 fwrite()和fprintf()的區別

4樓:繡乞群群

當使用fwrite將乙個int型數字65寫入文字檔案時,由於65對應的二進位制數是1000001,十六進製制數是0x41,儲存的是以二進位制的形式1000001.在notepad++中使用十六進製制方式開啟顯示的是:0x0041,轉換為十進位制則為65,使用記事本開啟這個文字檔案後顯示的是a,因為記事本程式預設為儲存在文字檔案中的資料都是ascii碼形式儲存,它把65當做ascii碼翻譯為字元a。

當使用fpintf將乙個int型數字65寫入文字檔案時,將65每一位轉換為ascii碼儲存,6、5分別對應ascii碼54、53,儲存的是ascii碼54、53.在notepad++中使用十六進製制方式開啟顯示的是:3635,轉換為十進位制則為54、53,這正是數字6、5的ascii碼。

使用記事本開啟這個文字檔案時,記事本將儲存在其中的54、53當做ascii碼翻譯為字元6、5顯示,我們看到的是便是字元65。

5樓:與子如初見

fwrite是按二進位制寫資料到檔案,而fprintf是嚴格按照引數裡邊的格式控制符,寫資料到檔案。可以是十進位制,二進位制,字串,等等,而且可以直接開啟檔案檢視資料,二進位制檔案是不能直接開啟檔案檢視資料的。

6樓:匿名使用者

一、作用區別:

fwrite是c語言函式,指向檔案寫入乙個資料塊。

fprintf是c/c++中的乙個格式化寫—庫函式;其作用是格式化輸出到乙個流/檔案中;

二、函式原型區別:

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

fprintf:int fprintf (file* stream, const char*format, [argument]);

三、返回值區別:

fwrite:返回實際寫入的資料項個數。

fprintf:返回值是輸出的字元數,發生錯誤時返回乙個負值。

7樓:匿名使用者

fprintf(fp, "%d", buffer); 是將格式化的資料寫入檔案

fprintf(檔案指標,格式字串,輸出表列);

是以二進位方式寫入檔案

fwrite(資料,資料型別大小(位元組數),寫入資料的最大數量,檔案指標);

c語言 fprintf()與fwrite()的區別

8樓:與子如初見

首先 第乙個 因為fprintf寫入檔案的時候是有格式化控制符列表的 而是用 fscanf是可以利用這個格式化控制列表讀取資料的 當然你也可以使用fgets 和 fgetc 讀取, 這都是沒有問題的。

文字方式寫入的意思應該是資料裡邊只有文字(包括數字字串之類)的意思吧,這個是我的理解。

9樓:匿名使用者

1)不是。它們只是功能不一樣。

2)用文字方式寫入的內容,在遇到'\n'時,寫檔案的函式會自動追加乙個'\r'。如果你不希望檔案的內容被改變,應該用二進位制方式寫入。

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...

c語言問題,C語言問題?

這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...