文件输入输出ifstream ofstream fstream

2024-03-01 21:58

本文主要是介绍文件输入输出ifstream ofstream fstream,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘取自《C++Primer》

头文件fstream定义了三个类型来支持文件IO
ifstream:从一个给定文件读取数据
ofstream:向一个给定文件写入数据
fstream:可以读写给定文件

这些类型提供的操作与对象cin和cout的操作一样,可以用IO运算符(<<和>>)来读写文件,可以用getline从一个ifstream读取数据,除了继承自iostream类型的行为之外,fstream中定义的类型还增加了一些新的成员来管理与流关联的文件,我们可以对fstream、ifstream、ofstream对象调用以下这些操作,但不能对其他IO类型调用这些操作。

文件模式

每个流都有一个关联的文件模式,用来指出如何使用文件。

指定文件模式规则:
1.只可以对ofstream或fstream对象设定out模式
2.只可以对ifstream或fstream对象设定in模式
3.只有当out也被设定时才可以设定trunc模式
4.是要trunc没被设定,就可以设定app模式,在app模式下,即使没有显式指定out模式,文件也总是以输出方式被打开
5.默认情况下,即使我们没有指定trunc,以out模式打开的文件也会被截断,为了保留以out模式打开的文件的内容,我们必须同时指定app模式,这样只会将数据追加写到文件末尾,或者同时指定in模式,即打开文件同时进行读写操作。
6.ate和binary模式可用于任何类型的文件流对象,且可以与其他任何文件模式组合使用
7.ifstream关联的文件默认以in模式打开,与ofstream关联的文件默认以out模式打开,与fstream关联的文件默认以in和out模式打开

使用文件流对象

当我们想要读写一个文件时,可以定义一个文件流对象,并将对象与文件关联起来,每个文件流都定义了一个名为open的成员函数,它完成一些系统相关的操作,来定义给定的文件,创建文件流对象时,可以提供文件名(可选的),如果提供了一个文件名,则open会自动被调用。新C++标准中,文件名既可以是库类型string对象,也可以是C风格字符数组,旧版本的标准库只允许C风格字符数组

	ifstream in(ifile);ofstream out;

用fstream代替iostream&

在要求使用基类型对象的地方,可以用继承类型的对象来替代,这意味着,接受一个iostream类型引用(或指针)参数的函数,可以用一个对应的fstream(或sstream)类型来调用。

成员函数open和close

如果调用open失败,failbit会被置位,因为调用open可能失败进行open是否成功的检测通常是一个好习惯,为了将文件流关联到另一个文件,必须首先关闭已经关联的文件,一旦文件成功关闭,我们可以打开新的文件。当一个fstream对象被销毁时,close会自动被调用

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <fstream>int _tmain(int argc, _TCHAR* argv[])
{ifstream ifs("aa.c"); //ios::inif (!ifs)cout << "open error" << endl;ofstream ofs("bb.c");  //ios::out|ios::truncif (!ofs)cout << "open error" << endl;fstream fs("cc.c", ios::in | ios::out | ios::trunc);if (!fs)cout << "open error" << endl;ifs.close();ofs.close();fs.close();return 0;
}

 

这篇关于文件输入输出ifstream ofstream fstream的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763961

相关文章

HDU1720(输入输出涨姿势)

A+B Coming Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5953    Accepted Submission(s): 3901 题目链接: http://acm.hdu.edu.cn/showproblem.p

ACM比赛中如何加速c++的输入输出?如何使cin速度与scanf速度相当?什么是最快的输入输出方法?

在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中

Java中的输入输出方法及格式

输入 通过Scanner类的对象进行输入 Scanner类位于java.util.Scanner包中,需要使用import关键字导入 Import java.util.Scanner 首先创建一个Scanner类的对象 Scanner 对象名=new Scanner(System.in); Scanner类中提供的方法包括 next():获取字符串,但不包括空格、Tab键和换行符

【C++】C++的输入输出、循环、条件、字符串、数组、类、继承的使用实例

本文介绍C++的基本使用,用一个程序说明的基本运用,当然C++中的指针与运算符的重载这些特色东西还没有涉及,只是把编程中最基本的东西讲述一次, 与《【Python】Windows版本的python开发环境的配置,Helloworld,Python中文问题,输入输出、条件、循环、数组、类》(点击打开链接)是姊妹篇,据说这堆东西出书的话能写很多很多页,上课的话能上大半学期,真是醉了。 以下程

输入输出系统和中断总结

IO系统基本概念 外部设备:包括输入输出设备以及通过输入输出接口才能访问的外存储设备接口:在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件输入设备:用于向计算机系统输入命令和文本、数据等信息的部件输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等部件外存设备:除计算机内存及CPU缓存外的存储器 IO系统分为IO软件和IO硬件 软件:采用IO指令和通道指令实现CPU和IO

集成电路学习:什么是I/O输入输出

I/O:输入输出         I/O,全称Input/Output,即输入输出,是信息处理系统(如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信方式。具体来说,输入是系统接收的信号或数据,而输出则是系统从其发送的信号或数据。         在计算机系统中,I/O操作涉及数据在内部存储器和外部存储器或其他周边设备之间的传输。这些设备包括但不限于键盘、鼠标(输入设备),以及

计组-第七章(输入输出系统)

中断隐指令有硬件实现       中断 涉及CPU处理

集成电路学习:什么是GPIO通用输入输出

GPIO:通用输入输出         GPIO,全称General Purpose Input/Output,即通用输入/输出端口,是嵌入式系统中非常重要的基本硬件资源之一。以下是对GPIO的详细解析: 一、GPIO的定义与功能         GPIO是一种非常灵活的接口,可以实现数字输入、数字输出、模拟输入、模拟输出等多种功能。它作为微控制器、嵌入式系统或其他电子设备与外部世界进行

c 基本类型-输入输出函数:

#include<stdio.h>#include<stdlib.h> main() { /*c语言中类型c 长度 面为 java 中长度 int 类型的长度:4 char 类型的长度:1 2float 类型的长度:4double 类型的长度:8long 类型的长度:4 8short 类型的长度:2signed 类型的长度:4unsigned 类型的长度:4c语言中没有

TI DSP TMS320F280025 Note9:GPIO输入输出与外部中断功能原理与应用

TMS320F280025 GPIO输入输出与外部中断功能原理与应用 文章目录 TMS320F280025 GPIO输入输出与外部中断功能原理与应用GPIO原理输入输出模式的共同特性1. 复用设置2. 内部上拉设置3. GPIO状态读取 对于输出模式输出电平设置开漏输出设置 对于输入模式极性设置采样类型不同步(异步输入)只同步到SYSCLKOUT使用采样窗口进行鉴定 外部输入中断G