C++ 读写文件方法--fstream,ofstream,ifstream
2016-03-31 15:16
543 查看
首先,ofstream,ifstream是从ostream,istream中继承而来的。
c++的文件流处理其实很简单,前提是你能够理解它。文件流本质是利用了一个buffer中间层。有点类似标准输出和标准输入一样。
c++IO的设计保证IO效率,同时又兼顾封装性和易用性。本文将会讲述c++文件流的用法。
有错误和疏漏的地方,欢迎批评指证。
需要包含的头文件: <fstream>
名字空间: std
也可以试用<fstream.h>
fstream提供了三个类,用来实现c++对文件的操作。(文件的创建,读写)。
ifstream -- 从已有的文件读
ofstream -- 向文件写内容
fstream - 打开文件供读写
支持的文件类型
实际上,文件类型可以分为两种:文本文件和二进制文件.
文本文件保存的是可读的字符,而二进制文件保存的只是二进制数据。利用二进制模式,你可以操作图像等文件。用文本模式,你只能读写文本文件。否则会报错。
例一: 写文件
声明一个ostream变量
调用open方法,使其与一个文件关联
写文件
调用close方法.
1. #include <fstream.h>
2.
3. void main
4. {
5. ofstream file;
6.
7. file.open("file.txt");
8.
9. file<<"Hellofile/n"<<75;
10.
11. file.close();
12.}
可以像试用cout一样试用操作符<<向文件写内容.
Usages:
1.
2. file<<"string/n";
3. file.put('c');
例二: 读文件
1. 声明一个ifstream变量.
2. 打开文件.
3. 从文件读数据
4. 关闭文件.
1. #include <fstream.h>
2.
3. void main
4. {
5. ifstream file;
6. char output[100];
7. int x;
8.
9. file.open("file.txt");
10.
11. file>>output;
12. cout<<output;
13. file>>x;
14. cout<<x;
15.
16. file.close();
17.}
同样的,你也可以像cin一样使用>>来操作文件。或者是调用成员函数
Usages:
1.
2. file>>char *;
3. file>>char;
4. file.get(char);
5. file.get(char *,int);
6. file.getline(char *,intsz);
7. file.getline(char *,intsz,char eol);
1.同样的,你也可以使用构造函数开打开一个文件、你只要把文件名作为构造函数的
第一个参数就可以了。
1. ofstream file("fl.txt");
2. ifstream file("fl.txt");
上面所讲的ofstream和ifstream只能进行读或是写,而fstream则同时提供读写的功能。
void main()
1. {
2. fstream file;
4. file.open("file.ext",iso::in|ios::out)
6. //do an input or outputhere
b5f1
8. file.close();
9. }
open函数的参数定义了文件的打开模式。总共有如下模式
1. 属性列表
3. ios::in 读
4. ios::out 写
5. ios::app 从文件末尾开始写
6. ios::binary 二进制模式
7. ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。
8. ios::noreplace 打开一个文件时,如果文件不存在,创建该文件
9. ios::trunc 打开一个文件,然后清空内容
10.ios::ate 打开一个文件时,将位置移动到文件尾
Notes
默认模式是文本
默认如果文件不存在,那么创建一个新的
多种模式可以混合,用|(按位或)
文件的byte索引从0开始。(就像数组一样)
我们也可以调用read函数和write函数来读写文件。
文件指针位置在c++中的用法:
1. ios::beg 文件头
2. ios::end 文件尾
3. ios::cur 当前位置
例子:
1. file.seekg(0,ios::end);
2.
3. int fl_sz = file.tellg();
4.
5. file.seekg(0,ios::beg);
常用的错误判断方法:
1. good() 如果文件打开成功
2. bad() 打开文件时发生错误
3. eof() 到达文件尾
例子:
1. char ch;
2. ifstream file("kool.cpp",ios::in|ios::out);
3.
4. if(file.good())cout<<"The file has been opened without problems;
5. else cout<<"AnError has happend on opening the file;
6.
7. while(!file.eof())
8. {
9. file>>ch;
10. cout<<ch;
11. }
c++的文件流处理其实很简单,前提是你能够理解它。文件流本质是利用了一个buffer中间层。有点类似标准输出和标准输入一样。
c++IO的设计保证IO效率,同时又兼顾封装性和易用性。本文将会讲述c++文件流的用法。
有错误和疏漏的地方,欢迎批评指证。
需要包含的头文件: <fstream>
名字空间: std
也可以试用<fstream.h>
fstream提供了三个类,用来实现c++对文件的操作。(文件的创建,读写)。
ifstream -- 从已有的文件读
ofstream -- 向文件写内容
fstream - 打开文件供读写
支持的文件类型
实际上,文件类型可以分为两种:文本文件和二进制文件.
文本文件保存的是可读的字符,而二进制文件保存的只是二进制数据。利用二进制模式,你可以操作图像等文件。用文本模式,你只能读写文本文件。否则会报错。
例一: 写文件
声明一个ostream变量
调用open方法,使其与一个文件关联
写文件
调用close方法.
1. #include <fstream.h>
2.
3. void main
4. {
5. ofstream file;
6.
7. file.open("file.txt");
8.
9. file<<"Hellofile/n"<<75;
10.
11. file.close();
12.}
可以像试用cout一样试用操作符<<向文件写内容.
Usages:
1.
2. file<<"string/n";
3. file.put('c');
例二: 读文件
1. 声明一个ifstream变量.
2. 打开文件.
3. 从文件读数据
4. 关闭文件.
1. #include <fstream.h>
2.
3. void main
4. {
5. ifstream file;
6. char output[100];
7. int x;
8.
9. file.open("file.txt");
10.
11. file>>output;
12. cout<<output;
13. file>>x;
14. cout<<x;
15.
16. file.close();
17.}
同样的,你也可以像cin一样使用>>来操作文件。或者是调用成员函数
Usages:
1.
2. file>>char *;
3. file>>char;
4. file.get(char);
5. file.get(char *,int);
6. file.getline(char *,intsz);
7. file.getline(char *,intsz,char eol);
1.同样的,你也可以使用构造函数开打开一个文件、你只要把文件名作为构造函数的
第一个参数就可以了。
1. ofstream file("fl.txt");
2. ifstream file("fl.txt");
上面所讲的ofstream和ifstream只能进行读或是写,而fstream则同时提供读写的功能。
void main()
1. {
2. fstream file;
4. file.open("file.ext",iso::in|ios::out)
6. //do an input or outputhere
b5f1
8. file.close();
9. }
open函数的参数定义了文件的打开模式。总共有如下模式
1. 属性列表
3. ios::in 读
4. ios::out 写
5. ios::app 从文件末尾开始写
6. ios::binary 二进制模式
7. ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。
8. ios::noreplace 打开一个文件时,如果文件不存在,创建该文件
9. ios::trunc 打开一个文件,然后清空内容
10.ios::ate 打开一个文件时,将位置移动到文件尾
Notes
默认模式是文本
默认如果文件不存在,那么创建一个新的
多种模式可以混合,用|(按位或)
文件的byte索引从0开始。(就像数组一样)
我们也可以调用read函数和write函数来读写文件。
文件指针位置在c++中的用法:
1. ios::beg 文件头
2. ios::end 文件尾
3. ios::cur 当前位置
例子:
1. file.seekg(0,ios::end);
2.
3. int fl_sz = file.tellg();
4.
5. file.seekg(0,ios::beg);
常用的错误判断方法:
1. good() 如果文件打开成功
2. bad() 打开文件时发生错误
3. eof() 到达文件尾
例子:
1. char ch;
2. ifstream file("kool.cpp",ios::in|ios::out);
3.
4. if(file.good())cout<<"The file has been opened without problems;
5. else cout<<"AnError has happend on opening the file;
6.
7. while(!file.eof())
8. {
9. file>>ch;
10. cout<<ch;
11. }
相关文章推荐
- C++学习基础
- C++:只用初始化列表初始化变量的几种情况
- 简单常用滤波算法C语言实现
- C++中的虚函数
- C++------------------------------------------------------------- 排序
- VS项目属性中C/C++运行库 、MT /MTd /MD /MDd
- C++primer第九章习题解答
- C++异常以及错误处理
- C++中冒号(:)和双冒号(::)的用法
- 【poj 1850】Code 题意&题解&代码(C++)
- 1026. 程序运行时间
- c++ 基础知识(1)
- 【C++】《C++标准程序库》小结第十三章-stream(2)
- 关于C++
- c++基础知识---名字空间
- 改进式PID控制以及C语言实现过程
- 2015级C++第6周项目 类的组合、静态存储
- 用C++实现快速排序
- VSCode配置C++编写环境
- PID连续控制算法的表达式以及C语言实现