wdata=0xa5;
fwrite(&wdata,sizeof(char),1,filedir);
请问这两句话什么意思?谢谢
补充一点:char wdata;
谢谢你 其实我就是对&wdata比较困惑 原语句就是wdata = 0xa5
您能在详细解释一下为什么是将0xa5这个地址中的内容放入filedir吗?
首先,这个位置要放一个地址或指针,这个我明白。可是&wdata不就是取wdata的地址吗?那不就是将wdata的内容放入filedir吗?
是这样的,那个位置就是放的要写入东西的地址,你把那个位置写了0xa5的地址了,当然是将0xa5这个地址中的内容放入filedir中了,0xa5本身就是个地址,对地址取地址是没有错的,反而是更安全的,系统会找wdata中存放的内容发现是个地址,会继续找这个地址中的内容。所以&data这样写是没错的
不知道你的0xa5是怎么回事,但是举个例子
char ch= 0x35; -- 可以,0x35 是16进制 35,因为 char 可以看成 8 bits (1 byte) 整数。
如果你的wdata也是char类型的那就是这个意思,如果你程序中有0xa5这个地址的话,那0xa5就是个地址
在分别说明一下
char ch='0xa5'; -- '0xa5'表示字符数值,对一个char大小的变量ch容纳不了这么大的数,所以只用了 '5',也就是 ASCII 值 53,十六进制 35,字符5。
char ch="0xa5"; -- 字符串,要 ch[5] 才装得下,4个字符 0xa5 何一个结束符 "\0"
你既然补充了
char ch= 0x35; -- 可以,0x35 是16进制 35,因为 char 可以看成 8 bits (1 byte) 整数。
这个就成立了!
c语言fwrite函数及地址的问题
(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址;(2)size:要写入内容的单字节数;(3)count:要进行写入size字节的数据项的个数;(4)stream:目标文件指针;(5)返回实际写入的数据项个数count。这是函数原型定义 即参数含义 wdata=0xa5; 不知道你定义的这个是不是赋值地址...
c语言中fwrite的问题
fwrite 操作后会把文件指针位置 向后 移动size*count字节。接着再fwrite就从这个当前位置起写。while循环里,例如读1个结构,写一个结构,一直到读到 文件结束符 EOF为止。这种写法有没有必要看情况决定。例如,一个结构就是一个学生的成绩单,但一开始并不知道文件里一共有多少学生,那么用这种循环读...
C语言关于fwrite函数的问题
你的程序怎么不加注释啊。。。我大概读了下,觉得可能是你的读函数把你的文件都读出来后,最后把你链表记录到最后指向空的头指针也读了。你看看是不是你把数据信息都输进去后,它读出所有信息后又多读了一位空指针所指的随机数据。
c语言第一次弄fwrite,但是运行后我打开文件看里面是空的。为什么
这么写正常的话是应该输入 100 次的.之所以一次就退出是因为 fwrite (&s, sizeof(s), 100, pFile ); &s 应该是 s[i]. s本身已经是指针了.错误导致 再按任意键结束了。 没有 fclose 所以文件里什么都没有.
C语言中fwrite和fread函数的问题
“第一次循环的时候 将c1地址中的内容写入到 pfw地址,再第二次写入的时候,pfw的地址是+1吗?”——当然。这些都是文件指针自动管理的不须程序员干预。不过所谓+1是广义的,即文件指针向后移动多少,是由写入函数的实参和是否写入成功决定的。
C语言中的fwrite(或是fopen)的问题,追加写入就错误。
楼主这句有问题for(i=0;str[i]!='\/0';i++); ,应该为for(i=0;str[i]!='\\0';i++); 其他没问题啊。include <stdlib.h> include <stdio.h> int main(){ FILE *fp;int i;char path[160],str[500];int size =0;printf("输入文件地址或者创建一个新文件:\\n");gets(path);f...
C语言fwrite()问题。
应该是这种情况:你输入“hell0 world”时因为有间隔,导致你从流中写入到你的a变量中其实只有hello这几个字符,因为它是以空格结束,最后读出来的其实就是你写进去的hello加上a中剩余元素的值,如果你的a中的元素先都初始化为0,那么就不会出现乱码了。要获取一行需要getline吧 ...
C语言 fwrite fread 函数怎么使用? 始读取不到数据 也可能我根本没写...
C语言里的fwrite,是带写缓冲的。你往文件里写数据后,数据并不是马上就写到文件里。主要在下面三种情况下会写到文件里:(1)缓冲区满了 (2)使用了fflush函数 (3)使用了fclose函数 所以你的错误就在于,在saveToDisk函数的最后,没有把文件关闭。另外,对文件操作结束,把文件关闭掉本身就是个好...
C语言fwrite写入文件后为什么出现乱码?
这个函数以二进制形式对文件进行操作。按数据定义结构的写入保持数据结构的长度,对于数值类型,再用文本方式打开时表现为乱码。例如float a=12345.67,写入文件后为4个字节,打开后不是文本表示的8个字节。写入数据用fprintf(fp,"%s %s %d 这种方式。不是 fscanf(), 另,注意写出时的格式里要有分隔...
C语言 fwrite输入问题
C语言 fwrite输入问题 #include<stdio.h>#include<stdlib.h>#defineN2structstudent_type{charname[10];intnum;intage;charaddr[15];}stud[N];voidsave(){FILE*fp;inti;if((fp=fopen("C:\/\/stu.dat","wb"))=... #include<stdio.h>#include<stdlib.h>#define N 2struct student_type { char name[...