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指针,指向一个已经打开了的文件。
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指向的文件中。”
这句话是有错的,不是将0xa5写入指定的文件,如果你是要写入0xa5字符串的话,应该定义wdata = "0xa5"而不是wdata = 0xa5
TA贡献1862条经验 获得超6个赞
wdata=0xa5;
fwrite(&wdata,sizeof(char),1,filedir);
就是把字符'\a5',也就是ASCII表中的序号为0xa5的字符写到文件里,看filedir的名字好像是在写目录。那应该是文件的属性Attrib吧
- 3 回答
- 0 关注
- 263 浏览
添加回答
举报