fread(buffer,size,count,fp)(freadbuffer,size,count,fp返回值)

http://www.itjxue.com  2024-06-17 06:04  来源:IT教学网  点击次数: 

C语言fread为什么会读取失败呢?

1、fread读失败一般是没有读到指定的字节数,检查你的数据文件长度不是sizeof(students)的整倍数。还有顺序读文件就不要用fseek, 因为fread后文件指针就已经移到下一个位置了。补充:你写文件时用 fprintf(fp,%dt%st%st%st%dt%s, 不是按结构存的,读的时候也不可能按结构读出来。

2、这种文本文件一般用不着使用二进制读写 在用二进制读写时需要注意,文本文件中有看不见的字符,比如换行符,在读取时必须考虑它们占用的字符。

3、首先讲下size_t fread(void *buffer,size_t size,size_t count,FILE *stream);虽然这里buffer是个指针,但我们必须给它分配一个缓冲区,不能只定义一个指针p就用它来获取sizeof(struct stu)大小的数据,要知道指针p是个地址,只有四个字节,是放不下那么大的数据的,当然即使放得下也不能这么用。

4、if(fread(&per[n],sizeof(Person),1,fp)n++;fclose(fp); /*关闭文件*/ return(n);} 看看是否能够显示。鉴于只给出了“Saveall”与“Load”,所以,建议检查其他模块,因为无法保证“添加记录”及“main函数”正常执行,不一定能够与整个程序对接。

C语言中fread的一些疑问

那要看你“动没动”这个文件的指针了,如果没有移动文件指针,而且还用这个文件指针继续读,那是顺序从第3个字符向后读,若你移动了文件指针,就从移动后的文件指针指向的地方向后读。

要用fread 读取, 你原来的文件 必须 用 wb 方式打开 和 用 fwrite 写成。

我的 C语言fread函数读int数据为什么是反的 如图,我想找到stts后第五个字节开始,没4个字节读出一个int数,但是都出来的数,是反的,比如第一个数,16进制是0x00001126都出来确实0x26110000。

用fread(temp,1024,1,fp)也能读出,意思是一个元素的大小是1024个字节,每次读取一个,这在读取前面内容时没问题,当读到最后,加入只剩下100个字节的数据,不足1024字节时,程序返回0,你无法知道程序最后一次读出了多少数据。

C语言fread函数读取的个数怎么决定

Size:每个要读取的元素的大小,单位字节---第二个参数 Count:要读取的元素个数---第三个参数 函数的返回值是实际读出元素的个数。fwrite的第二和第三个参数及返回值的含义同上。

Count:要读取的元素个数---第三个参数 函数的返回值是实际读出元素的个数。fwrite的第二和第三个参数及返回值的含义同上。

读取的元素个数为1。sizeof得到的是元素大小。从一个文件流中读数据,读取 1个元素 ,每个元素 sizeof字节.如果调用成功返回值大于1。如不成功,返回实际读取的元素个数,小于满意请采纳,还有问题请追问。

fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。

buf表示存放读入一个数据的地址指针;size表示读出的字节数;count表示读出数据项的个数;fp表示文件型指针。例如:fread(f,4,2,fp);其中,f是一个实型数组名,在内存中占4个字节。该语句功能是从fp所指向的文件中读入两个4字节的数据到f中。

(责任编辑:IT教学网)

更多

相关PHP+MySQL视频文章

推荐PHP+MySQL视频文章