VC中文件操作的几种方式(1,2)
来源:互联网 发布:好听的网络歌曲 编辑:程序博客网 时间:2024/05/29 02:33
第6章 使用文件存取对象
文件可以用来存储一张《清明上河图》,一曲《春江花月夜》,当然也可以存储一部《红楼梦》,文件的内容依赖于应用程序来解释。几乎所有的操作系统都通过文件的界面允许用户保存、管理数据。所以,我们理所当然把文件当做数据存取介质的第一选择。
6.1 文件操作的几种方式
操作计算机的人都会接触到文件,文件的操作通常包括文件的读取、修改,有的时候我们还需要对文件进行外部管理,包括文件复制、删除及属性设置等。
6.1.1 使用CRT函数std::fxxx()
文件操作可以采用C语言运行时期库来完成,CRT提供的fxxx()函数如表6-1所示。
函数
从文件中读取指定长度的数据
fwrite
判断是否达到文件结尾
fgetc
向文本文件中写入一个字符
fputs
文件操作方式
读模式,如果文件不存在则会失败
w
如果文件不存在则会自动创建
r+
读+追加模式
t
文件编码方式,可指定ENCODING 、UNICODE
文件的操作方式可以是如上标志的组合,如:r+b。当采用"ccs=ENCODING"时,我们需要在前面添加一个","作为分隔。如我们以读写方式、UNICODE编码打开某个文件:
- fopen("newfile.txt", "rw, ccs=UNICODE");
如下罗列出使用CRT函数进行文件操作的流程。
使用fopen()创建、打开文件,返回一个文件指针FILE *;
以FILE *作为参数,调用fread()、fwrite()等操作函数完成对文件的读写。fread()、fwrite()函数的原型为:
- size_t fread(
- void *buffer,
- size_t size,
- size_t count,
- FILE *stream
- );
- size_t fwrite(
- const void *buffer,
- size_t size,
- size_t count,
- FILE *stream
- );
调用fclose()关闭文件指针。
使用CRT操作文件流程如图6-1所示。
(点击查看大图)图6-2 文件输入/输出流
和文件有关系的输入/输出类主要在头文件<fstream>中被定义。在这个头文件中主要定义了3个类。由这3个类控制对文件的各种输入/输出操作,它们分别是ifstream、ofstream、fstream。其中fstream类是由iostream类派生而来的,它们之间的继承关系如图6-3所示。
如果需要使用fstream,则需要包含<fstream>头文件,与iostream不同的是,fstream需要和指定的文件名相关联,如:
表6-3 fstream含义
- ofstream out("test.out");
- out << "hello, world!";
open
判断当前文件是否已打开
其中,open()函数具有多个原型:
- void open(
- const char *_Filename,
- ios_base::openmode _Mode = ios_base::in | ios_base::out,
- int _Prot = (int)ios_base::_Openprot
- );
- void open(
- const char *_Filename,
- ios_base::openmode _Mode
- );
- void open(
- const wchar_t *_Filename,
- ios_base::openmode _Mode = ios_base::in | ios_base::out,
- int _Prot = (int)ios_base::_Openprot
- );
- void open(
- const wchar_t *_Filename,
- ios_base::openmode _Mode
- );
参数ios_base::openmode用以指定文件的打开方式,可以是如表6-4所示的标志的组合。
标志
),新输出的内容追加在原文件内容的后面
ios::ate
以二进制方式打开文件,默认的方式是文本方式
ios::in
截断模式(truncate如果文件已存在则不替换
如下罗列出使用fstream类进行文件操作的流程。
调用fstream::fopen()创建、打开文件。
通过流操作,使用fstream完成输入/输出,如:out << "hello, world!"。
调用fstream::close()关闭文件。
====未完待续====
以上摘自《把脉VC++》第4.6.2小节的内容 ,转载请注明出处。
本文出自 “白乔博客” 博客,请务必保留此出处http://bluejoe.blog.51cto.com/807902/196504
- VC中文件操作的几种方式(1,2)
- VC中文件操作的几种方式(1,2)
- VC中文件操作的几种方式(1,2)
- VC中文件操作的几种方式(1,2)
- VC中文件操作的几种方式(1,2)
- VC中文件操作的几种方式(3,4)
- VC中文件操作的几种方式(3,4)
- VC中文件操作的几种方式(3,4)
- VC中文件的操作
- VC 操作Excel的几种方式
- Qt中文件读取的几种方式
- windows编程中文件操作的几种方法
- windows编程中文件操作的几种方法
- windows编程中文件操作的几种方法
- vc中文件的读写操作
- VB中文件操作的两种方式
- VB中文件操作的两种方式
- VB中文件操作的两种方式
- QWidget Geometry 保存与恢复
- 页面声明周期
- Thread.interrupt()方法很详细的介绍
- startService 和 bindService的区别
- 练习题
- VC中文件操作的几种方式(1,2)
- 具体数学笔记(1)-Recurrent Problems
- WTL
- 图的深度优先遍历算法
- mysql远程登录
- xshell 乱码
- 自定义easy-ui validatebox 如maxLength()等等校验规则
- Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
- jsp中The absolute uri: http://java.sun.com/jsp/jstl/core出问题