fopen特殊模式r+, w+, a+辨析
fopen模式分两大类,即
TEXT模式:r, w, a, r+, w+, a+
BIN模式:rb, wb, ab, r+b, w+b, a+b
|
模式 |
读指针初始位置 |
写指针初始位置 |
模式用途 |
详细说明 |
|
r+ |
SEEK_SET |
SEEK_SET |
修改文件 |
根据读出的数据来修改指针所在位置的数据,可通过fseek移动写指针的位置。 |
|
w+ |
SEEK_SET |
SEEK_SET |
替换文件 |
覆盖已存在的文件,可通过fseek移动写指针的位置。 |
|
a+ |
SEEK_SET |
SEEK_END |
追加文件 |
根据读出的数据在文件尾追加数据,读数据时可通过fseek任意移动指针,但写指针必须保持在文件尾,否则写不成功。 |
Wndows下写文件时换行符的处理:
1. 若文件以默认TEXT方式打开,换行符只需要一个\n,实际写入时会修正为\r\n,若换行符写成了\r\n,则实际写入会变成\r\r\n。
2. 若文件以BIN方式打开,换行符必须按照实际需求写入,即\r\n。
(linux下无此规则)
fopen特殊模式r+, w+, a+辨析的更多相关文章
- C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析
C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ...
- python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb
要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...
- python文件操作打开模式 r,w,a,r+,w+,a+ 区别辨析
主要分成三大类: r 和 r+ "读"功能 r 只读 r+ 读写(先读后写) 辨析:对于r,只有读取功能,利用光标的移动,可以选择要读取的内容. 对于r+,同时具有读和写 ...
- 008PHP文件处理——文件操作r w (用的比较多) a x(用的比较少) 模式 rewind 指针归位:
<?php /** *文件操作r w (用的比较多) a x(用的比较少) 模式 rewind 指针归位: */ /*$a=fopen('a.txt','r'); echo fread($a,f ...
- python r r+ w w+ rb 文件打开模式的区别
# 只读模式with open ( "file.txt" ,'r' ) as f: for line in f.readlines(): ...
- Python文件读写之r+/w+/a+
读模式 r 打开不存在的文件会报错.不能写:如不指定模式则默认是r 写模式 w 打开不存在的文件会,会新建一个文件:打开存在的文件会先清空后覆盖原有文件:不能读 追加模式 a 打开不存在的文件会,会新 ...
- python文件操作r+,w+,a+,rb+,
w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式 ...
- 第九天- 文件操作 r w a 文件复制/修改
文件操作简介:使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作也会 ...
- python对文件操作 r w a 文件复制/修改
文件操作简介: 使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后 通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作 ...
随机推荐
- py-day4-1 python reduce函数
from functools import reduse 从模块中导入 reduce函数: 处理一个序列,然后把序列进行合并操作 #**** 问题:求1+2+3+100的和是多少? # 一,原始 ...
- SpringMVC的HandlerMapping(处理器映射器)
SpringMvc有四种HandlerMapping:BeanNameUrlHandlerMapping ,SimpleUrlHandlerMapping,ControllerClassNameHan ...
- docker-solr 使用host模式修改默认的8983端口号
1.使用root账号进入docker-solr docker exec -it 127627ab6247 -u root /bin/bash 2.安装vim apt-get update apt-ge ...
- 拓展abaqus python 模块
abaqus python 本身自带一些模块: 在安装路径:\\SIMULIA\Abaqus\6.14-1\tools\SMApy\python2.7\Lib\site-packages和另外一个2. ...
- django template模板 母板 include导入
一,使用{% block name %}{% endblock %}定义一个模板,在模板页面中它的内容为空,在各页面用{% block name %}自己的标签内容{% endblock %}调用. ...
- 安装lnmp1.5,搬迁Laravel项目到服务器笔记
近期有个Laravel开发项目,需要搬到CentOS服务器做测试. 先说下项目的配置: Laravel版本5.5 --确定了php7.0以上: CentOS 7.0或以上. lnmp 1.5版 以下是 ...
- rocketmq (一)运行原理以及使用问题
使用消息中间件可以解决高并发,那是因为消息中间件可以将消息缓存到队列之中. 但是 当消息 过多的时候,几万,几十万...消息中间件也可能会宕机,所以我们可以对消息中间件进行集群,在之前的activem ...
- 初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性
ChromeDriver可以理解为Chrome驱动,它是架在BAT程序和Chrome之间的桥梁.但是ChromeDriver的问题是,每个版本的兼容范围很窄,通常只能兼容3个Chrome版本. 因此, ...
- 获取geometry边界范围的示例代码
根据sqlserver geometry数据定义获取空间类型边界范围 --获取指定街道边界的xy最大最小值 ) '--街道编码 create table #temp_point(id int iden ...
- Java高级框架——Mybatis(二)
十.三种查询方式 1. selectList()返回值为List<resultType属性控制> 1.1 适用于查询结果都需要遍历的需求 List<Flower> list = ...