fopen w和 w+属性的区别
“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+属性的区别相关推荐
- 从nmn临床研究最新消息背后,我认识到了w+nmn和nmn的区别重要性
从nmn临床研究新消息背后,我看到了w+nmn和nmn的区别重要性!作为深受期待的NAD+补充剂,NMN在人体抗老化临床方面取得了飞跃的进展.近日,一篇关于nmn靶向消除衰老脂肪细胞,及其研究进展的文 ...
- 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结
正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中 ...
- Python文件操作中的a,a+,w,w+,rb+,rw+,ra+几种方式的区别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yang520java/article/ ...
- 阐述:nmn的全称是什么,w+nmn和nmn的区别
阐述:nmn的全称是什么,w+nmn和nmn的区别! NMN,全称β-烟酰胺单核苷酸,化学式C11H15N2O8P,pH 值为3.0-4.0,是一种自然存在的具有生物活动性核苷酸. NMN, full ...
- C语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?
r 打开只读文件,该文件必须存在.r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件.w+ 打开可读写文件,若文件存在 ...
- JQuery的removeProp()与removeAttr()移除属性的区别
JQuery的removeProp()与removeAttr()移除属性的区别 ------------removeProp()和removeAttr()函数详解------------------- ...
- Dom属性和HTML属性的区别
w 遇到这个问题的可以先参考这一篇文章,能帮你很好的理解DOM和HTML两种属性的区别之处:https://blog.csdn.net/u014291497/article/details/50639 ...
- Python正则表达式书写容易碰到的陷阱:\W*和\W*?匹配过程遇到的问题
老猿在分析<Python正则表达式\W+和\W*匹配过程的深入分析>中的问题时,想到一个问题,如果"re.split('(\W*)','Hello,world')"的处 ...
- Python正则表达式\W+和\W*匹配过程的深入分析
在学习re.split函数的处理过程中,发现执行如下语句及返回与老猿预想的不一致: >>> re.split('\W*','Hello,world') ['', 'H', 'e', ...
- 组合特征(五)countvector(w)+doc(w)+hash(w)
""" 将countvector(word).hash(word)和doc2vec(word)拼接成新特征""" import pickle ...
最新文章
- BCH预挖?不存在的
- vs编译c语言文件不读取对象式宏,C代码的条编译宏windows的VS和linux下gcc编译不一样...
- spark内核回顾思考 RDD
- Java中xmp标签的作用_如何在Java中从JPEG读取XMP面部数据
- Linux下MPlayer的安装
- pythonapi异步_Python-FastAPI异步博客开发记录--异步篇
- 日志服务Python消费组实战(三):实时跨域监测多日志库数据
- Mike Novogratz:比特币在未来几年内将继续大幅上涨
- mysqli_connect参数的写法以及如何设置特定端口
- python面向对象遇见问题
- Android4.4 多媒体开发(五)----OpenMax简介
- C++11 thread_local
- springboot+shiro+jwt
- 电池SOH仿真系列-基于LSTM神经网络的电池SOH估算方法
- html自动写对联,html中的对联代码
- 服务器装无线上网卡,dlink无线上网卡怎么安装和设置
- WebStrom配置好git后文件颜色代表的含义
- 利用计算机网线传东西,2台电脑一根网线传文件(两台电脑直连网线做法)
- DITHER 抖动算法
- Apollo(阿波罗)(一)环境搭建