文件操作:1入门
2015-02-01 13:18
162 查看
•1.概念:
c++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h
fstream:可同时读写操作的文件类(由iostream引申而来)
ofsteam:可操作(输出)的文件类(由ostream引申而来)
ifstream:读操作(输入)的文件类(由istream引申而来)
•2.文件中数据的组织形式:
文件可以分为:
1.ASCII文件
ASCII文件也称文本文件,其每个字节存一个ASCII代码,表示一个字符
优点:便于对字符操作
缺点:占用的存储空间较大、速度慢
2.二进制文件
把内存中的存储形式原样写到外存储器中
优点:节省外存储空间和转换时间、速度快、便于存放中间结果
缺点:一个字节不对应一个字符
举例:int型数10000
在内存存储形式0010 0111 0001 0000
ASCII形式0011 0001 0011 0000 0011 0000 0011 0000 0011 0000
二进制形式0010 0111 0001 0000(10000的二进制表示)
•3.打开文件:
创建文件流对象:为了实现文件的输入输出,首先要创建一个文件流,把这个流和实际的文件相关联
ofstream outfile;//建立一个输出文件流对象outfile
ifstream infile;//建立一个输入文件流对象infile
注意:建立文件流对象要包含头文件:fstream.h
补充:要通过一个流对象打开一个文件,要使用它的成员函数open()
使用的语句:void open(const char *filename,openmode mode);//其中filename是要打开的文件名,mode是打开文件的方式
打开文件的方式总结:
以上属性用"|"连接
ofstream、ifstream、fstream所有这些类的成员函数open都包含了一个默认的打开文件的方式,如下表:
当函数被调用时没有声明方式参数的情况下,默认值才会被采用。若被调用时声明了方式,默认值将被完全改写,不会与 参数组合。
例如:以二进制输入方式打开文件c:\config.sys
fstream file1;
file1.open("c:\\config.sys",ios::binary|ios::in);
说明:打开文件用于输入,并将这个文件与输入文件类对象infile建立联系,今后,在程序中,用到这个文件"config.sys"的地方用fiel1来代替。
或者为:fstream file1("c:\\config.sys",ios::binary|ios::in);
注意:若省略文件路径,默认为当前源文件目录下的文件。
打开文件后,都要判断打开是否成功。
若打开成功,文件流对象值为非零值
若打开失败,则其值为0
你可以通过调用成员函数is_open()来检查一个文件是否已经被顺利的打开了:
bool is_open();
它返回一个布尔(bool)值,为真(true)代表文件已经被顺利打开,假( false )则相反。
示例:
View Code
啊哈哈哈,这篇博客真的好长,不过确实学到东西了,下面继续学习文件的操作~~
c++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h
fstream:可同时读写操作的文件类(由iostream引申而来)
ofsteam:可操作(输出)的文件类(由ostream引申而来)
ifstream:读操作(输入)的文件类(由istream引申而来)
•2.文件中数据的组织形式:
文件可以分为:
1.ASCII文件
ASCII文件也称文本文件,其每个字节存一个ASCII代码,表示一个字符
优点:便于对字符操作
缺点:占用的存储空间较大、速度慢
2.二进制文件
把内存中的存储形式原样写到外存储器中
优点:节省外存储空间和转换时间、速度快、便于存放中间结果
缺点:一个字节不对应一个字符
举例:int型数10000
在内存存储形式0010 0111 0001 0000
ASCII形式0011 0001 0011 0000 0011 0000 0011 0000 0011 0000
二进制形式0010 0111 0001 0000(10000的二进制表示)
•3.打开文件:
创建文件流对象:为了实现文件的输入输出,首先要创建一个文件流,把这个流和实际的文件相关联
ofstream outfile;//建立一个输出文件流对象outfile
ifstream infile;//建立一个输入文件流对象infile
注意:建立文件流对象要包含头文件:fstream.h
补充:要通过一个流对象打开一个文件,要使用它的成员函数open()
使用的语句:void open(const char *filename,openmode mode);//其中filename是要打开的文件名,mode是打开文件的方式
打开文件的方式总结:
ios::app | 以追加方式打开文件 |
ios::ate | 文件打开后定位到文件尾 |
ios::binary | 以二进制方式打开文件,缺省的方式是文本 |
ios::in | 文件以输入方式打开(ifstream默认的) |
ios::out | 文件以输出方式打开(ofstream默认) |
ios::nocreate | 不建立文件,所以文件不存在时打开失败 |
ios::noreplace | 不覆盖文件,所以打开文件时如果文件存在,则失败 |
ios::trunc | 如果文件存在,把文件长度设置为0 |
以上属性用"|"连接
ofstream、ifstream、fstream所有这些类的成员函数open都包含了一个默认的打开文件的方式,如下表:
类 | 参数的默认方式 |
ofstream | ios::out|ios::trunc |
ifstream | ios::in |
fstream | ios::i|ios::out |
当函数被调用时没有声明方式参数的情况下,默认值才会被采用。若被调用时声明了方式,默认值将被完全改写,不会与 参数组合。
例如:以二进制输入方式打开文件c:\config.sys
fstream file1;
file1.open("c:\\config.sys",ios::binary|ios::in);
说明:打开文件用于输入,并将这个文件与输入文件类对象infile建立联系,今后,在程序中,用到这个文件"config.sys"的地方用fiel1来代替。
或者为:fstream file1("c:\\config.sys",ios::binary|ios::in);
注意:若省略文件路径,默认为当前源文件目录下的文件。
打开文件后,都要判断打开是否成功。
若打开成功,文件流对象值为非零值
若打开失败,则其值为0
你可以通过调用成员函数is_open()来检查一个文件是否已经被顺利的打开了:
bool is_open();
它返回一个布尔(bool)值,为真(true)代表文件已经被顺利打开,假( false )则相反。
示例:
#include <iostream> #include <fstream> using namespace std; int main() { const int num=255; char temp1[num]={0};//初始化数组temp1 char temp2[num]={0};//初始化数组temp2 //① 输出数据到文件text.txt中 ofstream f_out("text.txt"); cout<<"请输入文本的内容:\n"; cin.getline(temp1,num,0); int n=strlen(temp1); temp1[n-1]='\0'; f_out<<temp1; f_out.close(); //② 将文件text.txt中的内容重新读回屏幕上 ifstream f_in("text.txt"); f_in.getline(temp2,num,0); cout<<temp2<<endl; return 0; }
View Code
啊哈哈哈,这篇博客真的好长,不过确实学到东西了,下面继续学习文件的操作~~
相关文章推荐
- 3)Linux程序设计入门--文件操作
- linux操作系统下c语言编程入门 -- (3)文件操作
- ASP编程入门进阶(十八):FSO组件之文件操作(中)
- 操作入门 怎样打开文件会更安全
- 3Linux程序设计入门--文件操作
- ASP编程入门进阶(十八):FSO组件之文件操作(上)
- linux操作系统下c语言编程入门--文件操作
- ASP编程入门进阶(十八):FSO组件之文件操作(上)
- 入门:Java 中对文件的读写操作之比较
- ASP编程入门进阶(十八):FSO组件之文件操作(下)
- Linux程序设计入门--文件操作
- Linux程序设计入门--文件操作
- ASP编程入门进阶(十八):FSO组件之文件操作(上)
- ASP编程入门进阶(十八):FSO组件之文件操作(上)
- ASP编程入门进阶(十八):FSO组件之文件操作(上)
- ASP编程入门进阶(十八):FSO组件之文件操作(中)
- ASP编程入门进阶(十八):FSO组件之文件操作(下)
- Linux命令-基本操作及文件操作常用命令--详解Linux入门到精通系列
- linux程序设计入门--文件操作:linux下文件的操作
- .net入门之VB篇:Visual Basic.Net中的文件操作(一)