博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 文件的输入输出流
阅读量:5820 次
发布时间:2019-06-18

本文共 1989 字,大约阅读时间需要 6 分钟。

hot3.png

翻译自:

c++提供了下列的类用来处理文件的输入输出:

    ofstream:处理文件输出流的类

    ifstream:处理文件输出流的类

    fstream:同时处理文件输入输出的类

这些类直接或间接地衍生自istream或ostream类,我们已经在前面学习过这些类,我们使用了他们的对象cin,cout。我们可以像使用cin,cout一样来操作我们的文件流。不同的是,我们处理的是物理设备上的文件。让我们瞧一下下面的例子。

// basic file operations#include 
#include
using namespace std;int main () { ofstream myfile; myfile.open ("example.txt"); myfile << "Writing this to a file.\n"; myfile.close(); return 0;}

这个程序创建了一个叫做"example.txt"的文件,并且写入了一串字符。

 

我们一步一步的向下进行:

打开一个文件

    创建一个与文件关联的对象。并使用open函数打开文件。

    open(filename,mode)

     filename在这里不在赘述,重点介绍一下mode:

ios::in 为输入打开
ios::out 为输出打开
ios::binary 以二进制打开
ios::ate 打开文件,并移至文件尾部
ios::app 追加的文件结尾
ios::trunc 如果问价存在,则截断文件

可以逻辑运算符OR(|)合并标志(mode)位,如下:

ofstream myfile;myfile.open ("example.bin", ios::out | ios::app | ios::binary);

文件处理的三个类中有一个默认的标志位,如下:

class default mode parameter
ofstream ios::out
ifstream ios::in
fstream ios::in | ios::out

我们也可以采用以下的方式进行打开文件,可以完美合并open函数跟构造函数。

ofstream myfile ("example.bin", ios::out | ios::app | ios::binary);

打开完成之后,我们可以使用如下方式测试问价是否打开成功:

if (myfile.is_open()) { /* ok, proceed with output */ }

关闭文件

myfile.close();

文本文件流

    文本文件流是在标志中不含有ios:binary的文件流,它 的大致输入输出如下:

输入:

// writing on a text file#include 
#include
using namespace std;int main () { ofstream myfile ("example.txt"); if (myfile.is_open()) { myfile << "This is a line.\n"; myfile << "This is another line.\n"; myfile.close(); } else cout << "Unable to open file"; return 0;}

输入:

// reading a text file #include 
#include
#include
using namespace std;int main () { string line; ifstream myfile ("example.txt"); if (myfile.is_open()) { while ( myfile.good() ) //处于就绪状态 { getline (myfile,line); cout << line << endl; } myfile.close(); } else cout << "Unable to open file"; return 0;}

测试状态:

除了good()检查状态,还有其他的一些测试函数。

bad()

fail()

eof()

good()

功能不在此处多说了!

获取和设置流指针:

    未完待续

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/wxwHome/blog/76398

你可能感兴趣的文章
hp 服务器通过串口重定向功能的使用
查看>>
国外10大IT网站和博客网站
查看>>
对java语言学习的个人看法
查看>>
android第十一期 - SmoothSwitchLibrary仿IOS切换Activity动画效果
查看>>
zabbix 批量web url监控
查看>>
大容量导入和导出数据 -- 格式化文件生成
查看>>
MongoDB CookBook读书笔记之导入导出
查看>>
shell如何快速锁定所有账号
查看>>
HTML 5实现的手机摇一摇
查看>>
Linux 文件IO理解
查看>>
Ninject 2.x细说---2.绑定和作用域
查看>>
30个非常时尚的网页联系表单设计优秀示例
查看>>
使用membership(System.Web.Security)来进行角色与权限管理
查看>>
opticom 语音质量验证白皮书
查看>>
3D实时渲染中的BSP树和多边形剔除
查看>>
Frank Klemm's Dither and Noise Shaping Page: Dither and Noise Shaping In MPC/MP+
查看>>
网络抓包的部署和工具Wireshark【图书节选】
查看>>
Redis在Windows+linux平台下的安装配置
查看>>
Maven入门实战笔记-11节[6]
查看>>
几篇JavaEye的博客
查看>>