请教一下,关于c语言fwrite函数及地址的问题,麻烦帮忙看看哦!

wdata=0xa5;
fwrite(&wdata,sizeof(char),1,filedir);
请问这两句话什么意思?谢谢
补充一点:char wdata;

MMTTMM
浏览 265回答 3
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指针,指向一个已经打开了的文件。

翻过高山走不出你

你好,是这样的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是字符串赋值给了wdatawata = 0xa5 这样写的话,0xa5就是一个十六进制的地址的形式fwrite(&wdata,sizeof(char),1,filedir); //这句话的意思就是 把wdata这个地址中的内容,放入到filedir中,大小是sizeof(char) 个数是1 这句话的意思就是向文件中写数据的不赞同,Parthas这个人的回答,他的“所以这个是将0xa5这个字符写入filedir指向的文件中。”这句话是有错的,不是将0xa5写入指定的文件,如果你是要写入0xa5字符串的话,应该定义wdata = "0xa5"而不是wdata = 0xa5

阿波罗的战车

wdata=0xa5;fwrite(&wdata,sizeof(char),1,filedir);就是把字符'\a5',也就是ASCII表中的序号为0xa5的字符写到文件里,看filedir的名字好像是在写目录。那应该是文件的属性Attrib吧
打开App,查看更多内容
随时随地看视频慕课网APP