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  // 文件尾

缺省状态为当前位置.

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectX修复工具使用技巧之三——命令行与配置文件参数介绍

    DirectX修复工具使用技巧之三——命令行与配置文件参数介绍最后更新:2021-10-8DirectX修复工具自V1.0版起即支持通过settings.ini配置文件的方式设置程序配置信息,自V3.7版起支持命令行配置功能。由于命令行与配置文件均需要通过参数设定程序配置信息,本文档详细列出了命令行与配置文件的参数使用方式,供有需要的高级用户参考。命令行与配置文件中约有90%的命令是通用的,部分特殊命令只支持命令行的配置方式,本文件将分别介绍命令行参数与配置文件参数。命令行参数本程序支持命令行参数提示,用户可通过/?或者/h…

    2022年5月22日
    37
  • 数据结构面试经典问题汇总及答案_数据结构基础面试题

    数据结构面试经典问题汇总及答案_数据结构基础面试题数据结构面试经典问题汇总参考资源:基础深入补充:参考资源:基础数据结构常见面试题深入数据结构面试题(三)数据结构面试必问数据结构算法常见面试考题补充:1.数组和链表的区别,请详细解释。从逻辑结构来看:a)数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。b)链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除

    2022年9月19日
    1
  • 学生注册idea_学生证怎么绑定身份证

    学生注册idea_学生证怎么绑定身份证一、安装进入官网下载适合自己系统的版本,下载地址:https://www.jetbrains.com/idea/download/#section=windows安装中选择适合本机的64位(32位)版本,其他一直next即可二、激活成功教程先下载jar包JetbrainsCrack.jar,把它放到你认为合适的文件夹内,我直接放在了安装目录C:\ProgramFiles\JetBrai…

    2022年9月23日
    0
  • FPGA与CPLD的概念及其区别[通俗易懂]

    FPGA与CPLD的概念及其区别[通俗易懂]一、FPGA与CPLD的基本概念1.CPLDCPLD主要是由可编程逻辑宏单元(LMC,LogicMacroCell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性…

    2022年6月4日
    62
  • ActivityManager_activity管理器

    ActivityManager_activity管理器ActivityManager在操作系统中有重要的作用,本文利用操作系统源码,逐步理清ActivityManager的框架,并从静态类结构图和动态序列图两个角度分别进行剖析,从而帮助开发人员加强对系统框架及进程通信机制的理解。ActivityManager的作用参照SDK的说明,可见ActivityManager的功能是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运

    2022年9月7日
    0
  • docker开启2375端口[通俗易懂]

    docker开启2375端口[通俗易懂]Docker开启RemoteAPI访问2375端口-hongdada-博客园https://www.cnblogs.com/hongdada/p/11512901.htmldocker开启2375端口,提供外部访问docker,idea连接服务器docker_霓虹深处-CSDN博客_idea连接docker2376端口https://blog.csdn.net/qq_36850813/article/details/89924207…

    2022年5月29日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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