用C++进行简单的文件I/O操作

序论

我曾发表过文件输入输出的文章,现在觉得有必要再写一点。文件 I/O 在C++中比烤蛋糕 简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得 注意的是,所有这些都是用C++完成的。

一、ASCII 输出

为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已 经使用<fstream>取代<fstream.h>,所有的C++标准头文件都是无后缀的。)。 这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。 如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们 分别使用"ifstream"?和 "ofstream" 来作输入输出。

如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来 说很简单。 我们现在开始讲输出部分,首先声明一个类对象。ofstream fout;

这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。

fout.open("output.txt");

你也可以把文件名作为构造参数来打开一个文件.

ofstream fout("output.txt");

这是我们使用的方法, 因为这样创建和打开一个文件看起来更简单. 顺便说一句, 如果你 要打开的文件不存在,它会为你创建一个, 所以不用担心文件创建的问题. 现在就输出到文 件,看起来和"cout"的操作很像。 对不了解控制台输出"cout"的人, 这里有个例子。

int num = 150;
char name[] = "John Doe";
fout << "Here is a number: " << num << "\n";
fout << "Now here is a string: " << name << "\n";

现在保存文件,你必须关闭文件,或者回写文件缓冲. 文件关闭之后就不能再操作了, 所 以只有在你不再操作这个文件的时候才调用它,它会自动保存文件。 回写缓冲区会在保持文 件打开的情况下保存文件, 所以只要有必要就使用它。 回写看起来像另一次输出, 然后调用 方法关闭。像这样:

fout << flush; fout.close();

现在你用文本编辑器打开文件,内容看起来是这样:

Here is a number: 150 Now here is a string: John Doe

很简单吧! 现在继续文件输入, 需要一点技巧, 所以先确认你已经明白了流操作,对 "<<" 和">>" 比较熟悉了, 因为你接下来还要用到他们 。继续…

时间: 2024-08-01 18:17:46

用C++进行简单的文件I/O操作的相关文章

代码-Xcode6.2 中编译简单.c文件,昨天中午突然出现如下错误

问题描述 Xcode6.2 中编译简单.c文件,昨天中午突然出现如下错误 Xcode6.2 中编译简单.c文件,之前正常,昨天中午突然出现如下错误:,编译什么的都正常,就是一敲cc ./a.out 就出现报错啊,正式无语了,昨天求一天也没人能解决,自己也搞了一上午,还是不行啊...求大神解救,,代码是没错误,因为我拿最简单的代码试了,也会报错 解决方案 是不是连接模拟器了,是64位的问题吧 解决方案二: 你直接在Xcode里面创建一个命令行工程,然后再把这个C源文件导入到工程里,肯定能通过编译哇

php简单获取文件扩展名的方法

 这篇文章主要介绍了php简单获取文件扩展名的方法,实例分析了php获取文件扩展名的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php简单获取文件扩展名的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 <?php function get_file_extension($file_name) { /* may contain multiple dots */ $string_parts = explode('.

python简单读写文件问题代码纠错

问题描述 python简单读写文件问题代码纠错 def write(self,fname): import os ls = os.linesep while True: if os.path.exists(fname): print "ERROR:'%s'already exists"%fname break else: break all=[] print"nEnter lines('.'by itself to quit).n" while True: entr

求帮助啊 急用啊-利用C语言设计简单的文件加密解密程序

问题描述 利用C语言设计简单的文件加密解密程序 利用C语言设计简单的文件加密解密程序,并通过代码实现,希望得到源代码. 解决方案 最简单的用xor实现加密.http://blog.csdn.net/fdipzone/article/details/20413631 解决方案二: http://blog.163.com/chatter@126/blog/static/12766566120101020102247603/http://blog.csdn.net/szhhck/article/det

jsp问题-一个简单jsp文件检查了好几遍不知道为什么报错,求高手指点

问题描述 一个简单jsp文件检查了好几遍不知道为什么报错,求高手指点 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> <% Locale locale = request.getLocale(); Calendar calendar = Calendar.getInstance(locale); int

mfc-用MFC做一个简单的文件上传的程序 ,上传过程中的暂停和继续怎么实现?

问题描述 用MFC做一个简单的文件上传的程序 ,上传过程中的暂停和继续怎么实现? rt 解决方案 能不能中断和继续取决于服务器怎么实现的,服务器必须具有分块接收上传文件的能力. 解决方案二: 你要把你的主要实现和主界面分开,就是用多线程,一个线程用于处理数据,主界面线程用于显示和接受用户操作,当用户按开始按钮时,开启处理线程,暂停时暂停处理线程,继续时再唤醒处理线程就行了. 解决方案三: java Web && 文件上传--简单实现

自己写了一个最简单的文件复制工具,但是却不能复制,请大家帮忙看看

问题描述 自己写了一个最简单的文件复制工具,但是却不能复制,请大家帮忙看看usingSystem;usingSystem.IO;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespace文件复制移动删除{publicpartia

php简单获取文件扩展名的方法_php技巧

本文实例讲述了php简单获取文件扩展名的方法.分享给大家供大家参考.具体实现方法如下: <?php function get_file_extension($file_name) { /* may contain multiple dots */ $string_parts = explode('.', $file_name); $extension = $string_parts[count($string_parts) - 1]; $extension = strtolower($exten

golang简单读写文件示例_Golang

本文实例讲述了golang简单读写文件的方法.分享给大家供大家参考,具体如下: 这里演示golang读写文件的方法: 复制代码 代码如下: package main import (     "fmt"     "os" ) func main() {     f, err := os.OpenFile("file2.txt", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0x644)     if err !=