fstream文件打开模式
fstream:
对于文件的操作很久两年前就开始使用了,但是仅仅为了达到满足自己需求的目的,就是要么是写,要么是读。从来没有对其进行详细的了解。自己也曾
经想过花一点时间去总结一下,这个东西到底应该怎么用。但是由于:自己的本性懒,所以一直拖到今天,挤出一点时间把这个问题彻底解决一下。还有一点,读写不要同时用否则会出问题。相用的话,需要先seekg或者 seekp;
默认打开模式是共享的。
ios::in 为输入打开文件。文件不存在打开失败,文件存在则打开
ios::out:为输入打开文件。文件不存在则创建在打开,文件存在则清空
ios::nocreate 文件存在时候,不起作用。当文件不存在时候,强制文件不存在也不创建,这个项应该是针对ios::out;
ios::noreplace 不覆盖文件,所以打开文件时如果文件存在失败。当文件不存在时,此参数无效。文件存在时,这个选项对于ios::in无效,因为它没有覆盖的意图。但是对于ios::out则是有作用的,当文件存在时打开失败。
ios::binary文件默认是以文本形式打开,当指定次模式,以二进制打开。
ios::trunc如果文件不存在,则无效,当文件存在时,首先删除里面的内容。
ios::app 所有输出附加在文件末尾,读操作与写操作共享指针(位置指针),具有读文件的特性,也就是说在与iso::out组合使用的时候,不清空文件
ios::ate 初始位置:文件尾
假想文件操作(假设文件存在):
文件末尾添加:iso::out|iso::app 或者iso::out|iso::in|ios::ate mark:iso::out|iso::ate会清空里面的数据
清空文件添加:iso::out
读取:iso::in
读写文件:iso::out|iso::in
读写前清空:iso::out|iso::in|iso::trunc
假想文件操作(假设文件不存在)
不可能进行纯粹的读操作
向文件里写东西:ios::out
向文件里读写:iso::in|iso::out
fstream文件打开模式的更多相关文章
- C++文件操作(输入输出、格式控制、文件打开模式、测试流状态、二进制读写)
1.向文件写数据 头文件#include <ofstream> ①Create an instance of ofstream(创建ofstream实例) ②Open the file w ...
- C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析
C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ...
- 关于open函数文件打开模式的有意思的一个现象
老猿前阵子学习了文件IO,最近正在回顾及进行各种验证和总结,老猿在对文件进行打开后的返回值检查属性时,发现文件打开返回的文件对象的读写模式与打开文件的模式并不完全相同,如下案例: fp1 = open ...
- linux文件打开模式
文件打开 int open(const char *pathname, int flags, mode_t mode); 普通方式(Canonical mode) flags中没有设置O_SYN ...
- Python——文件打开模式辨析
版权声明:本文系原创,转载请注明出处及链接. Python中,open()函数打开文件时打开模式如r.r+ .w+.w.a.a+有何不同 r 只能读 r+ 可读可写,不会创建不存在的文件.如果直接写文 ...
- c语言文件打开模式
(转载) 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ab rb ...
- python文件打开模式&time&python第三方库
r:以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w:打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. a:打开一个文件用于追加.如果该文件已存在 ...
- python中各种文件打开模式
在python中,总的来说有三种大的模式打开文件,分别是:a, w, r 当以a模式打开时,只能写文件,而且是在文件末尾添加内容. 当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发 ...
- python r r+ w w+ rb 文件打开模式的区别
# 只读模式with open ( "file.txt" ,'r' ) as f: for line in f.readlines(): ...
随机推荐
- Monkey 稳定性测试
学习网址: https://blog.csdn.net/lucytan01/article/details/79958727 https://blog.csdn.net/hebbely/article ...
- Python 学习杂项
#print("Hello World!") #name = "nihfjkds" age = 454 num1 = 1 num2 = 2 #print(nam ...
- BZOJ 4557 (JLOI 2016) 侦查守卫
4557: [JLoi2016]侦察守卫 Time Limit: 20 Sec Memory Limit: 256 MB Submit: 493 Solved: 342 [Submit][Status ...
- IEnumerable_vs_IEnumerator
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- Linux 中执行Shell 脚本的方式(三种方法)
Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...
- <前端>简单实现开心网注册
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [PKUSC2018]神仙的游戏
题目 画一画就会发现一些奇诡的性质 首先如果\(len\)为一个\(\operatorname{border}\),那么必然对于\(\forall i\in [1,len]\),都会有\(s_i=s_ ...
- 激活office2016的心路历程
先转换成VOL版本 32位的office2016用如下代码 @echo off :ADMIN openfiles >nul >nul ||( echo Set UAC = CreateOb ...
- 杂项-关于strlen()的使用
发现了一个很坑的东西. 看下面两份代码: //code1 char s[N]; ;i<strlen(s);i++)Do(); //code2 char s[N]; ;s[i];i++)Do(); ...
- mysql 多表join
两个表可以简单地写为 select a.,b. from a left join b on a.id =b.id; 三个以上 select a.,b. from a left join b on a. ...