C++文件输入输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013637931/article/details/45155655

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") ,这三个类的默认方式各不相同:
参数的默认方式
ofstream ios::out | ios::trunc
ifstream ios::in
fstream ios::in | ios::out

          只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。

向文件末尾添加文本:ofstream fout("file.out",ofstream::app);

展开阅读全文

没有更多推荐了,返回首页