c++中fstream是什么意思_c++形式参数

c++中fstream是什么意思_c++形式参数初学C++fstream最近出于学习需要,接触了一些C++的程序,对于文件的操作,在C++中的实现方法与C中有些不同,现归纳如下:C++中对文件的操作,是围绕三种类型的文件流(ifstream,ofstream,ftream)进行的.而这三种流事实上是系统定义的类.操作中,首先使流与文件相关联,通过流(也就是类成员)来完成对文件的操作.文件使用完毕,一定要关闭,从而切断流…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

初学C++ fstream

最近出于学习需要, 接触了一些C++的程序, 对于文件的操作, 在C++中的实现方法与C中有些不同,

现归纳如下:

C++中对文件的操作, 是围绕三种类型的文件流(ifstream, ofstream, ftream)进行的. 而这三种流

事实上是系统定义的类. 操作中, 首先使流与文件相关联, 通过流(也就是类成员)来完成对文件的操作.

文件使用完毕, 一定要关闭, 从而切断流与文件的关联, 否则可能会损坏文件.

在程序中要打开一个输入文件流, 对文件进行读操作, 必须说明类型为ifstream对象; 要打开一个输

出文件流, 对文件进行写操作, 必须说明类型为ofstream的对象; 要建立一个输入输出的流, 对文件进行

读写操作, 必须说明一个类型为ftream的对象.

1. 建立一个IO文件流有如下两种方式

1) 通过调用函数open()来实现

fstream test_file;

/** 以读写方式打开argv[1]指定的文件, 并将文件长度截为0*/

test_file.open(test, ios::in | ios::out | ios::trunc);

2) 在创建IO流的同时与文件相关联, 该操作自动打开文件

fstream test_file(test, ios::in | ios::out | ios::trunc);

open()函数的原型为:

void open(const char * szName, int nMode, int nPort = filebuf::openport);

其中第一个参数szName表示相关联的文件名, 第二个参数nMode表示文件的打开方式, 第三个参数

nPort是文件的保护方式, 用户不必理会. 关于第二个参数说明如下:

定义了下列打开模式和文件属性:

ios::app  // 从后面添加

ios::ate  // 打开并找到文件尾

ios::binary  // 二进制模式 I/O (与文本模式相对)

ios::in   // 只读打开

ios::out  // 写打开

ios::trunc  // 将文件截为 0 长度

ios::nocreat // 若文件不存在, 则打开失败

ios::noreplace // 若文件存在, 如果没有设置ate或者app, 那么打开失败

2. 对文件的读写操作

char *str = “hello, world!”;

char buf[100];

1) 对文件的读写, 可以通过write, read实现, 如:

test_file.write(str, strlen(str));

test_file.read(buf, sizeof(buf));

2) 也可以使用C++中的抽取操作符实现, 如:

test_file << str;  // write str to file

test_file >> buf;  // read to buf

3. 移动流的读写位置

移动读写位置可以通过seekg或是seekp实现:

1) test_file.seekg(10, ios::beg);

2) test_file.seekp(10, ios::beg);

seekp(seek put)用于ofstream对象, seekg(seek get)用于ifstream对象. 在fstream对象里, 二者

没有区别.

可以用下面的常量重新定位文件指针(第二个参数):

ios::beg  // 文件开始位置

ios::cur  // 当前位置,例如: ios::cur+5

ios::end  // 文件尾

缺省状态为当前位置.

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191852.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • k8s pod控制器_k8s多人用吗

    k8s pod控制器_k8s多人用吗k8sPod控制器的介绍ReplicaSet(RS)Deployment(Deploy)扩缩容镜像更新版本回退金丝雀发布Horizontal Pod Autoscaler(HPA)DaemonSet(DS)JobCronJob(CJ)StatefulSet(有状态)StatefulSet的金丝雀发布k8s的Pod控制器详解主要介绍各种Pod控制器的详细使用。Pod控制器的介绍在kubernetes中,按照Pod的创建方式可以将其分为两类:自主式Pod:kubernetes直接创建出来的Pod,这

  • 移动应用界面设计的尺寸规范「建议收藏」

    移动应用界面设计的尺寸规范「建议收藏」移动应用的界面设计画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现?本篇将结合iOS和android官方的设计规范、搜集的资料以及工作中的摸索,来分享移动应用界面设计中的尺寸规范等问题,希望能给移动端的新手设计师些许指引。若有不当之处,欢迎斧正。一、android篇1、android分辨率屏幕尺寸指实际的物理尺寸,为

  • python后端框架有哪些_后端框架有哪些?五款优秀的web开源后端框架推荐

    python后端框架有哪些_后端框架有哪些?五款优秀的web开源后端框架推荐作为一个web开发人员,下面五款优秀的开源框架一定要了解一下。PHP篇作为全球最好的web开发编程语言,PHP的框架非常多。下面重点介绍2款:Laravelhttps://laravel.comLaravel最大的优势就是:简洁和优雅。能迅速的让大家从杂乱无章的代码中解脱出来。拥抱PHP7基于composer全栈型框架灵活的路由配置仅仅通过配置文件就可以切换缓存、会话的存储介质,包括(file、r…

  • 液晶显示器测试软件6,屏幕坏点检测工具(Datum pixel repair)

    一般有很多的朋友都是不知道自己的电脑的屏幕是不是有多少个坏点的,或者是不知道怎么去测试,那么现在小编就给你介绍下面的这款屏幕坏点检测工具(Datumpixelrepair)来帮助你测试吧!Datumpixelrepair介绍Datumpixelrepair是一款可以快速检测出液晶显示器坏点的位置,用户点击不同的颜色填充整个屏幕,颜色包括:白、黑、红、绿等,使用户更容易检测出坏点!屏幕坏…

  • 电子元器件常用品牌汇总(持续更新)

    电子元器件常用品牌汇总(持续更新)电阻:Yageo国巨、Fenghua风华、Rohm罗姆、TDK、Samsung三星、Uniohm厚声、Walsin华新科、Ralec旺诠、KOA兴亚、Panasonic松下、AVX、TMTEC泰铭、Kyocera京瓷、PHYCOM飞元。电容:Yageo国巨、Fenghua风华、Murata村田、TDK、Samsung三星、Eyang宇阳、Taiyo太诱、Kyocera京瓷、HEC禾伸堂、Kemet基美、ISND华信安、AVX、Nichicon尼吉康、Panasonic松下、SANYO三洋。电感:Mura

  • JSONArray 转list

    JSONArray 转listJSONArray 转list 可以通过如下简便方法进行JSONArrayprogramsArray=jsonobject.getJSONArray(“programs”);Listlist=(List)JSONArray.toCollection(programsArray,Programs.class);转换过程中容易产生NoSuchMethodEx

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号