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)
上一篇 2026年1月24日 上午8:22
下一篇 2026年1月24日 上午9:01


相关推荐

  • Cursor基础使用教程 – 从入门到精通

    Cursor基础使用教程 – 从入门到精通

    2026年3月16日
    2
  • PMD【 Java 代码检查工具】入门使用教程(超详细)

    PMD【 Java 代码检查工具】入门使用教程(超详细)PMD Java 代码检查工具 介绍使用方式 1 使用插件的方式 2 maven 项目引入依赖的方式 3 pmd 命令行的方式 4 JavaAPI 的方式 项目结构测试代码 pmdArgs 方式 PMDConfigura 方式 Programmatic 拓展 分析结果图形界面检测自定义规则介绍 nbsp nbsp nbsp nbsp nbsp nbsp PMD 是一个静态源代码分析器 它发现了常见的编程缺陷 如未使用的变量 空捕获块 不必要的对象创建等等 官网 点这里官方文档 点这里使用方

    2026年3月20日
    2
  • Ubuntu pycharm 安装使用

    Ubuntu pycharm 安装使用Ubuntupychar 安装与启动 1 右击文件 pycharm community 2019 3 tar gz 选择 exteacthere 2 进入解压后的文件夹里的 bin 目录下 右击选择 openintermin 3 输入 shpycharm sh 即启动 pycharm 安装 keras 特定版本 pip3installk 2 2 4

    2026年3月27日
    2
  • Depix 这款去“马赛克“工具效果如何?

    Depix 这款去“马赛克“工具效果如何?最近突然冒出一则新闻,说出了一款开源去“马赛克“工具,三天获Github5000星,火爆网络!这款工具就是depix。出于好奇,去github下载了,文件很小,压缩包才580k,解压后也不到700k,里面的文件是python语言写的,主目录下就一个文件:depix.py,主目录下包含三个目录depixlib(库文件),docs(文档),images(需要用到的图片),如下图:根据depix在github上介绍,该文件目的根本不是去马赛克,而是做密码恢复使用,是对于手机或其他截屏上的类似马赛克

    2022年6月26日
    280
  • ForkJoin原理分析

    ForkJoin原理分析privateForkJ intparalleli ForkJoinWork UncaughtExce intmode Stringworker fo

    2026年3月19日
    3
  • django菜鸟教程用pycharm_runoob菜鸟教程官网

    django菜鸟教程用pycharm_runoob菜鸟教程官网Django安装以及简单项目创建(被django支配的恐惧)django简介python中有许多web框架,django无疑是一位S级选手,django是一个开放源代码的web框架,是由python写成的一个web框架.安装在安装django的同时,怎么能没有python呢django和python不可分割的一对基友,路径如下:python下载路径:https://www.pytho…

    2025年10月9日
    5

发表回复

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

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