“w”和“w+”属性:

1、相同点:都会将已存在的文件内容清空;

2、不同点:“w”,在fopen后,只能能进行写操作,如果写完后读文件,则必须首先要先fclose(fd);然后重新fopen(fd,"r");

"w+",则可以在写入数据之后,接着进行读数据;(顺序不能反,因为w属性会将文件内容清空)。

注意:“w+”在进行写操作之后,需要调整文件指针再进行读操作,因为此时文件指针是在末尾处。

int main()
{FILE* firstFile = fopen("cfg.ini","w+");if(!firstFile){perror("erro");}int temp;if((temp =  fputc('a',firstFile)<0))perror("fputc");elseprintf("succ\n");int result ;fseek(firstFile,0,SEEK_SET);//文件开头处while ( ( result= fgetc(firstFile) ) != EOF)
//        putchar(result);//用这种方法也行fputc(result,stdout);return 0;
}

或者不用循环,因为只写入了一个字符

int main()
{FILE* firstFile = fopen("cfg.ini","w+");if(!firstFile){perror("erro");}int temp;if((temp =  fputc('a',firstFile)<0))perror("fputc");elseprintf("succ\n");int result ;fseek(firstFile,0,SEEK_SET);//文件开头处result= fgetc(firstFile);
//        putchar(result);//用这种方法也行fputc(result,stdout);return 0;
}

备注:使用fseek函数调整文件指针位置

int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针

第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移

第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.

fseek函数一般用于二进制文件,也可以用于文本文件。用于文本文件操作时,需特别注意只有fseek(fp, 0, SEEK_SET) 和 fseek(fp, ftell(fp), SEEK_SET)能确保结果符合预期。

fopen w和 w+属性的区别相关推荐

  1. 从nmn临床研究最新消息背后,我认识到了w+nmn和nmn的区别重要性

    从nmn临床研究新消息背后,我看到了w+nmn和nmn的区别重要性!作为深受期待的NAD+补充剂,NMN在人体抗老化临床方面取得了飞跃的进展.近日,一篇关于nmn靶向消除衰老脂肪细胞,及其研究进展的文 ...

  2. 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结

    正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中 ...

  3. Python文件操作中的a,a+,w,w+,rb+,rw+,ra+几种方式的区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yang520java/article/ ...

  4. 阐述:nmn的全称是什么,w+nmn和nmn的区别

    阐述:nmn的全称是什么,w+nmn和nmn的区别! NMN,全称β-烟酰胺单核苷酸,化学式C11H15N2O8P,pH 值为3.0-4.0,是一种自然存在的具有生物活动性核苷酸. NMN, full ...

  5. C语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?

    r 打开只读文件,该文件必须存在.r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件.w+ 打开可读写文件,若文件存在 ...

  6. JQuery的removeProp()与removeAttr()移除属性的区别

    JQuery的removeProp()与removeAttr()移除属性的区别 ------------removeProp()和removeAttr()函数详解------------------- ...

  7. Dom属性和HTML属性的区别

    w 遇到这个问题的可以先参考这一篇文章,能帮你很好的理解DOM和HTML两种属性的区别之处:https://blog.csdn.net/u014291497/article/details/50639 ...

  8. Python正则表达式书写容易碰到的陷阱:\W*和\W*?匹配过程遇到的问题

    老猿在分析<Python正则表达式\W+和\W*匹配过程的深入分析>中的问题时,想到一个问题,如果"re.split('(\W*)','Hello,world')"的处 ...

  9. Python正则表达式\W+和\W*匹配过程的深入分析

    在学习re.split函数的处理过程中,发现执行如下语句及返回与老猿预想的不一致: >>> re.split('\W*','Hello,world') ['', 'H', 'e', ...

  10. 组合特征(五)countvector(w)+doc(w)+hash(w)

    """ 将countvector(word).hash(word)和doc2vec(word)拼接成新特征""" import pickle ...

最新文章

  1. BCH预挖?不存在的
  2. vs编译c语言文件不读取对象式宏,C代码的条编译宏windows的VS和linux下gcc编译不一样...
  3. spark内核回顾思考 RDD
  4. Java中xmp标签的作用_如何在Java中从JPEG读取XMP面部数据
  5. Linux下MPlayer的安装
  6. pythonapi异步_Python-FastAPI异步博客开发记录--异步篇
  7. 日志服务Python消费组实战(三):实时跨域监测多日志库数据
  8. Mike Novogratz:比特币在未来几年内将继续大幅上涨
  9. mysqli_connect参数的写法以及如何设置特定端口
  10. python面向对象遇见问题
  11. Android4.4 多媒体开发(五)----OpenMax简介
  12. C++11 thread_local
  13. springboot+shiro+jwt
  14. 电池SOH仿真系列-基于LSTM神经网络的电池SOH估算方法
  15. html自动写对联,html中的对联代码
  16. 服务器装无线上网卡,dlink无线上网卡怎么安装和设置
  17. WebStrom配置好git后文件颜色代表的含义
  18. 利用计算机网线传东西,2台电脑一根网线传文件(两台电脑直连网线做法)
  19. DITHER 抖动算法
  20. Apollo(阿波罗)(一)环境搭建

热门文章

  1. 关于手机打开开发者方式的方法
  2. Orcad allegro 安装补丁
  3. svchost是什么程序
  4. 如何制作一个可控制的人体骨骼模型
  5. 如何截图一张完整的表_wps2016表格太长怎么截图打印?
  6. 室内导航html,室内定位导航地图一体化设计
  7. ubuntu安装github 3D渲染库dirt
  8. python 用泽勒算法计算该天是星期几
  9. 苹果开发者账号注册、管理注意事项
  10. 计算机硕士专业有哪些课程,计算机专业考研科目有哪些