关于C/C++里FILE的fwrite和fread怎么用。

问题描述

关于C/C++里FILE的fwrite和fread怎么用。 2C
int main() {    Maillist *mal1 = new Maillist(""001""某某某""男""燕山大学""319970353@qq.com""15075318018"");    Maillist *mal2 = new Maillist(""002""某某某""男""燕山大学""319970353@qq.com""15075318018"");    FILE  *fp2 *fp1;    Maillist M N;    int nSize = sizeof(*mal2);    fp1 = fopen(""通讯录.txt""rb+"");    fwrite(mal1 nSize 1 fp1);    fwrite(mal2 nSize 1 fp1);    fclose(fp1);    fp2 = fopen(""通讯录.txt""rb+"");    fread(&M nSize 1 fp2);    M.showinfo();    List.push_back(M);}![图片说明](http://img.ask.csdn.net/upload/201605/18/1463538329_839515.png)这样是可以运行的。因为文件已经保存上了对吧,但是如果把前边的写入文件去掉然后就不能运行了    int main() {    Maillist *mal1 = new Maillist(""001""某某某""男""燕山大学""319970353@qq.com""15075318018"");    Maillist *mal2 = new Maillist(""002""某某某""男""燕山大学""319970353@qq.com""15075318018"");    FILE  *fp2 *fp1;    Maillist M N;    int nSize = sizeof(*mal2);    //fp1 = fopen(""通讯录.txt""rb+"");    //fwrite(mal1 nSize 1 fp1);    //fwrite(mal2 nSize 1 fp1);    //fclose(fp1);    fp2 = fopen(""通讯录.txt""rb+"");    fread(&M nSize 1 fp2);    M.showinfo();    List.push_back(M);}![图片说明](http://img.ask.csdn.net/upload/201605/18/1463538351_419745.png)这样就不能运行

解决方案

c fread/fwrite

解决方案二:
你的第二种方式,前面没有fwrite过的话,通讯录.txt文件里本来就有数据在的?

解决方案三:
fseek找到读写的位置
fread从流中读指定_个数的字符,原型是size_t fread(void ptr size_t size size_t n FILE *stream);参数ptr是保存读取的数据,void的指针可用任何类型的指针来替换,如char*、int 等等来替换;size是每块的字节数;n是读取的块数,如果成功,返回实际读取的块数(不是字节数),本函数一般用于二进制模式打开的文件中_
fwrite 与fread对应,向流中写指定的数据,原型是size_t fwrite(const void *ptr size_t size size_t n FILE *stream);参数ptr是要写入的数据指针,void
的指针可用任何类型的指针来替换,如char*、int *等等来替换;size是每块的字节数;n是要写的块数,如果成功,返回实际写入的块数(不是字节数),本函数一般用于二进制模式打开的文件中
**

时间: 2024-08-30 06:07:33

关于C/C++里FILE的fwrite和fread怎么用。的相关文章

fopen()、fwrite()、fread()函数使用说明与示例

fopen()函数: 1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针. 2.函数原型:   [cpp] view plain copy     FILE * fopen(const char * path,const char * mode);       -- path: 文件路径,如:"F:\Visual Stdio 2012\test.txt"       -- mode: 文件打开方式,例如:                "r&

c++11-C++11里怎么读取图片文件

问题描述 C++11里怎么读取图片文件 我想把图片文件读取内存,然后把它存到另一个地方,我试着自己写了一下,但是文件一直打不开,我的系统是ubuntu14.04.这是我的部分代码: void sReadFile("/home/bob/Downloads/123.jpg") { char buff[20480] = ""; std::ifstream fread(file,std::ios::binary); fread.read(buff,sizeof(buff))

C file函数

void clearerr(FILE * stream); 相关函数 feof 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标.int fclose(FILE * stream); 相关函数 close,fflush,fopen,setbuf 函数说明 fclose()用来关闭先前fopen()打开的文件.此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源. 返回值 若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno. 错误代

php 生成静态页面 fopen fwrite

function makeHtml($msgContent,$filePath,$fileName){//生成html文件     if(!is_dir($filePath)){@mkdir($filePath);}      $handle = fopen(str_replace('\','../',$filePath.$fileName),'w+') or die("can't create file!$fileName");   fwrite($handle,$msgConten

/dev/root: No such file or directory

/*************************************************************************** * /dev/root: No such file or directory * 说明: * 在使用SD卡自动扩展功能的时候,发现/dev/root不存在,找一下原因. * * 2017-4-1 深圳 南山平山村 曾剑锋 **************************************************************

php获取目录大小的方法

大致就是不知道目录下面又多少层目录, 也不知道又多少文件, 需要统计占用空间大小, 这个可以用在 相册/数据库占用/网络U盘 等程序中. 大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里. <? /** * File: fetch user directory use

php获取某个目录大小

  大致就是不知道目录下面又多少层目录, 也不知道又多少文件, 需要统计占用空间大小, 这个可以用在 相册/数据库占用/网络U盘 等程序中. 大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里. <?/** * File: fetch user directory use

PHP base64_decode+gzinflate压缩和解密代码图文教程

今天碰到的这个问题,是我在更换一个WP主题是遇到.目前的情况如下,我想要把如下的超链接去掉,后台代码找到了在sidebar1.php文件中. 打开此文件发现是一长串的字符: 经过百度.google后,有文章介绍说是PHP代码加密导致的,可以使用以下的代码解决此问题. 解密代码: <?php $Code = '这里填写要解密的编码'; // base64编码 $File = 'decoded.php';//解码后保存的文件 $Temp = base64_decode($Code); $temp =

PHP使用flock实现文件加锁的方法

  本文实例讲述了PHP使用flock实现文件加锁的方法.分享给大家供大家参考.具体分析如下: flock在官方文档里的解释是:flock() 允许你执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是Windows).如果锁定会堵塞的话(EWOULDBLOCK 错误码情况下),请将可选的第三个参数设置为 TRUE.锁定操作也可以被 fclose() 释放(代码执行完毕时也会自动调用). 简单来说,就是对一个文件进行锁定操作,使得多进程访问该文件时受到限制,