c語言fwrite和fprintf的區別

時間 2021-05-05 20:56:30

1樓:綉乞群群

當使用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。

2樓:與子如初見

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

3樓:匿名使用者

一、作用區別:

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:返回值是輸出的字元數,發生錯誤時返回一個負值。

4樓:匿名使用者

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

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

是以二進位方式寫入檔案

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

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

5樓:與子如初見

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

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

6樓:匿名使用者

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

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

c語言與e語言有什麼區別,Python和c語言有什麼區別

e語言簡單易學,可以用中文來編寫。如果你只是開發一個很小的軟體或遊戲,建議使用e語言,但是做一些大型遊戲,還是建議使用c c c語言多 我不建議學e語言 e語言的確是用漢文來編寫,但是這個必有其不完善的地方 別寫起來也沒有字母省力 現在貌似很多推廣e語言的 那都是因為他們說 英語不行 但是我感覺 有...

c語言中fd的區別,C語言中 d和 f還有 c有什麼區別

表示輸出型別的格式字元格式字元意義 c 輸出單個字元,引數為該字元的ascii碼。d 以十進位制形式輸出帶符號整數 正數不輸出符號 e e 以指數形式輸出單 雙精度實數,預設6位小數。f 以小數形式輸出單 雙精度實數,預設6位小數。g g 以 f e中較短的輸出寬度輸出單 雙精度實數,如果指數小於 ...

c語言的資料結構和程式設計,資料結構和C語言有什麼區別?

口框口 資料結構是資料及資料之間的關係,c語言只是一門程式語言,可以用 回c語言來寫程式,實現答資料按照某種特定的關係來組織和管理資料 也就是實現資料結構 所以資料結構的課程會有不同的語言版本,其實就是用不同的語言來實現資料結構了。呵呵,不知道你明白沒有呢 資料結構是c語言的更高層次的應用 示申僉 ...