浅谈C++的文件操作(上)

今天正在做C++的课程设计,碰到文件操作问题,自己琢磨了半天,现在总结一下,有需要的可以参考一下(特别是新手)

C++ 通过以下几个类支持文件的输入输出:

ofstream: 写操作(输出)的文件类
ifstream: 读操作(输入)的文件类
fstream: 可同时读写操作的文件类

1.打开文件

对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被打开的文件在程序中由一个流对象(stream object)来表示 (这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。

要通过一个流对象打开一个文件,我们使用它的成员函数open():文件流对象.open (文件名,打开方式);

打开方式是以下标志符的一个组合:

ios::in 为输入(读)而打开文件 
ios::out 为输出(写)而打开文件 
ios::ate 打开现存的文件,将文件指针指向文件尾 
ios::app 所有输出附加在文件末尾 
ios::trunc 如果文件已存在则先删除该文件 
ios::binary 二进制方式

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

ios::noreplace 若文件存在,则打开失败

些标识符可以被组合使用,中间以”或”操作符(|)间隔。例如,如果我们想要以二进制方式打开文件"example.bin" 来写入一些数据,我们可以通过以下方式调用成员函数open()来实现:ofstream file;

file.open ("example.bin", ios::out | ios::app | ios::binary);

ofstream, ifstream 和 fstream所有这些类的成员函数open 都包含了一个默认打开文件的方式,这三个类的默认方式各不相同: 类 参数的默认方式

ofstream ios::out | ios::trunc

ifstream ios::in

fstream ios::in | ios::out

注:只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。如果函数被调用时声明了任何参数,默认值将被完全改写,而不会与调用参数组合。

了解了文件的使用方式后,可以通过以下步骤打开文件:

1.定义一个流对象,如:ofstream out;

out 是流对象,是个输出流对象。

2.使用open函数打开文件,如out.open("test.dat",ios::out);

3.检测:if(!out){

cout<<"cannot open file!\n";

}

2.文件关闭:用out.close();即可。

时间: 2024-08-06 20:05:51

浅谈C++的文件操作(上)的相关文章

浅谈设计模式的学习(上)

作为一个开发人员,能写出一个漂亮可扩展的代码,绝对是一件令人愉快的事情.那设计模式就是一门必修课! 本文就自己学习设计模式的一点经历做一个记录. 本人在读大学时,为了学习设计模式就买了一本<java与模式>的数据,书籍有一千多页很重.而且价格不菲.没办法,花那么多钱买的不看岂不浪费.于是每天早上读一章,坚持几个月我终于读完了.这几个月真是煎熬啊,几个月下来,回忆一下似乎自己真得也没收获到什么,很悍然啊.难道是书籍不好吗还是我读的不认真?其实在我现在看来都不是.而为什么读完了却什么也没收获到呢?

java与python在处理大文件操作上的对比

1.问题描述 现在对一个2g的大文件,抽取第二列含有特点16个串的信息,并将这些含有特串的信息,写回到两个文件中 2.具体实现 (1)java代码 package naifen; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java

JAVA NIO之浅谈内存映射文件原理与DirectMemory

Java类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段.本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理. 在传统的文件IO操作中,我们都是调用操作系统提供的底层标准IO系统调用函数  read().write() ,此时调用此函数的进程(在JAVA中即java进程)由当前的用户态切换到内核态,然后OS的内核代码负责将相应的文件数据读取到内核的IO缓冲区,然后再把数据从内核IO缓冲区拷贝到进程的私有

浅谈.net中数据库操作事务

.net中的事务 关键几点 概念:1:什么是事务 2:什么时候用事务 3:基本的语法 (1): 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定.事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操

浅谈移动Web开发(上):深入概念

PPI 什么是PPI PPI的复杂之处在于如果他所属的上下文环境不同,意义也会完全不一样. 当我们在谈论显示设备的PPI时,它代指的屏幕的像素密度:当我们在谈论和图片相关时,我们谈论的是打印时的分辨率或者打印机的打印精度.这里我们主要描述的前一种情况. PPI全称为Pixel Per Inch,译为每英寸像素取值,更确切的说法应该是像素密度,也就是衡量单位物理面积内拥有像素值的情况. 如上图所示,在1英寸单位内面积内拥有的像素越多,密度越大,PPI值就越高.但像素密度的实际意义是什么?它表达的是

浅谈Notepad++选中行操作+快捷键+使用技巧【超详解】

Notepad++选中行操作 快捷键 使用技巧 用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人.... 有木有简单的方法呢,确实还是有的不过也不算太好用. 主要是应用键盘上的 Home 键 和 End 键. 鼠标光标停留在一行的某处,按 Home 键光标会跳到行首,按End键光标会跳到行尾. 鼠标光标停留在行尾,按 Shift + Home 选中一行. 鼠标光标停留在行首,按 Shift + End 选中一行. 鼠标光标停留在类中某处,按 Shi

FTP文件操作 上传文、 下载文件、删除文件 、创建目录

/// <summary> /// FTP上传文件 /// </summary> /// <param name="fileUpload">上传控件</param> /// <param name="ftpServerIP">上传文件服务器IP</param> /// <param name="ftpUserID">服务器用户名</param> ///

Linux培训教程 浅谈:PHP在linux上执行外部命令(整理)

一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用专门函数.2>反引号.3>popen()函数打开进程,三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(),shell_exec() 1)exec() 原型: string exec ( string$

浅谈Linux日志文件

1.日志的类型内核系统日志:记录Linux内核常见的故障,内核日志归rsyslog服务管理用户日志:记录用户登录系统,启动或者关闭系统信息,用户日志归rsyslog服务管理程序日志:程序日志独立,记录程序或者服务的运行状态信息2.日志常见的目录/var/log:记录crond计划任务产生的事件信息/var/log/dmesg:记录Linux操作系统在引导过程中的各种事件信息/var/log/maillog:记录进入或发出系统的电子邮件活动/var/log/lastlog:记录每个用户最近的登录事