您的位置:首页 > 编程语言 > C语言/C++

C++文件输入输出

2015-04-20 21:13 169 查看
C++文件输入输出可以按照文件操作和文件模式来讲解。

文件操作

1.定义文件输入流和输出流
(均包含在fstream中)
ifstream fin("file.in");
ofstream fout ("file.out");
2.检查文件是否打开成功
<span style="white-space:pre">	if(!fin)
{
<span style="white-space:pre">		</span>cerr<<"error:unable to open input file"<<endl;
<span style="white-space:pre">		</span>return -1;
}</span>

3.将文件流与新文件重新捆绑
<span style="white-space:pre">	</span>ifstream fin("file1.in");
<span style="white-space:pre">	</span>fin.close();
<span style="white-space:pre">	</span>fin.clear();<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>fin.open("file2.in");

如果要把fstream对象与另一个不同的文件关联起来,则必须先关闭(close)现在的文件,并且清空当前流的状态,然后打开(open)另一个文件。因为open函数会检查流是否已经打开,如果已经打开,则设置内部状态,以指出发生了错误。接下来使用文件流的任何尝试都会失败。

文件模式

在打开文件时,无论是调用open还是以文件名作为流初始化的一部分,都需指定文件模式(实质是整型常量)。模式是文件的属性而不是流的属性。

ios::in为输入(读)而打开文件
ios::out为输出(写)而打开文件
ios::ate初始位置:文件尾
ios::app所有输出附加在文件末尾
ios::trunc如果文件已存在则先删除该文件
ios::binary二进制方式
这些标识符可以被组合使用,中间以”或”操作符(|)间隔。
ofstream, ifstream 和 fstream所有这些类的成员函数open 都包含了一个默认打开文件的方式xxstream.open("filepath") ,这三个类的默认方式各不相同:

参数的默认方式
ofstreamios::out | ios::trunc
ifstreamios::in
fstreamios::in | ios::out
只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。

向文件末尾添加文本:ofstream fout("file.out",ofstream::app);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: