亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一下,關于c語言fwrite函數及地址的問題,麻煩幫忙看看哦!

請教一下,關于c語言fwrite函數及地址的問題,麻煩幫忙看看哦!

C PHP
MMTTMM 2021-10-20 18:15:30
wdata=0xa5;fwrite(&wdata,sizeof(char),1,filedir);請問這兩句話什么意思?謝謝補充一點:char wdata;
查看完整描述

3 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

(1)buffer:是一個指針,對fwrite來說,是要輸出數據的地址;
(2)size:要寫入內容的單字節數;
(3)count:要進行寫入size字節的數據項的個數;
(4)stream:目標文件指針;
(5)返回實際寫入的數據項個數count。
fwrite(&wdata,sizeof(char),1,filedir);

所以這個是將0xa5這個字符寫入filedir指向的文件中。
&wdata這個是取wdata的地址。
sizeof(char)這個表示取的單位長度為一個char的長度,也就是1。
1說明只取一個單位長度,也就是說從&wdata地址開始取一個字符也就是0xa5。
filedir這個是FILE指針,指向一個已經打開了的文件。



查看完整回答
反對 回復 2021-10-24
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

你好,是這樣的

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
(1)buffer:是一個指針,對fwrite來說,是要輸出數據的地址;
(2)size:要寫入內容的單字節數;
(3)count:要進行寫入size字節的數據項的個數;
(4)stream:目標文件指針;
(5)返回實際寫入的數據項個數count。
這是函數原型定義 即參數含義

wdata=0xa5; 不知道你定義的這個是不是賦值地址語句
wdata = "0xa5" 這樣是0xa5是字符串賦值給了wdata
wata = 0xa5 這樣寫的話,0xa5就是一個十六進制的地址的形式
fwrite(&wdata,sizeof(char),1,filedir); //這句話的意思就是 把wdata這個地址中的內容,放入到filedir中,大小是sizeof(char) 個數是1 這句話的意思就是向文件中寫數據的

不贊同,Parthas這個人的回答,他的“所以這個是將0xa5這個字符寫入filedir指向的文件中?!?br/>這句話是有錯的,不是將0xa5寫入指定的文件,如果你是要寫入0xa5字符串的話,應該定義wdata = "0xa5"而不是wdata = 0xa5



查看完整回答
反對 回復 2021-10-24
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

wdata=0xa5;
fwrite(&wdata,sizeof(char),1,filedir);
就是把字符'\a5',也就是ASCII表中的序號為0xa5的字符寫到文件里,看filedir的名字好像是在寫目錄。那應該是文件的屬性Attrib吧

查看完整回答
反對 回復 2021-10-24
  • 3 回答
  • 0 關注
  • 287 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號