文件输入输出(C++)
2015-06-25 19:52
344 查看
简单的文件IO
流检查 is_open
打开多个文件
文本模式
二进制文件
随机存取
内核格式化
需要:头文件
文件输入输出类似
或者
然后使用
注:默认模式为
读取文件:
读取文件的方法和写入文件方法类似。
然后使用各种
关闭连接
可以使用方法
注:关闭连接不会删除流,也就是说,流管理装置仍保存,输入输出流对象和他管理的缓存区依然存在
或者使用新的方法
注意:
可以用
注:
注意:由于这两个方法都是安字节从内存中读取,所以第一个参数指针必须强制转化为
使用
by the way:
这种方式被称为内核格式化
流检查 is_open
打开多个文件
文本模式
二进制文件
随机存取
内核格式化
需要:头文件
<fstream>
文件输入输出类似
cout和
cin
简单的文件I/O
写入文件:ofstream fcout声明一个
ofstream类,然后
fcout.open("test.txt")
或者
ofstream fcout("test.txt")
然后使用
cout的各种方法
注:默认模式为
写入,既如果文件存在,先清空文件内容,再写入
读取文件:
读取文件的方法和写入文件方法类似。
ifstream fcin,然后
fcin.open("text.txt");或者
ifstream fcin("text.txt")
然后使用各种
cin方法
关闭连接
可以使用方法
close()显式关闭到文件的连接
注:关闭连接不会删除流,也就是说,流管理装置仍保存,输入输出流对象和他管理的缓存区依然存在
流检查 & is_open()
判断文件流状态,可以用之前的方法:fail()
eof()
good()
bad()
或者使用新的方法
is_open()
注意:
is_open()可以检测是否以正确的文件模式打开某个文件,而老的方法不可以
打开多个文件
如果需要依次同种模式打开,而不是同时打开,最好是同一个文件对象,毕竟只打开一个流效率更高文本模式
ofstream和
ifstream构造函数和
open()方法都有第二个有默认值的参数,openmode类型,也是一种bitmask类型。例如:
ios_base::in
ios_base::out
可以用
|来组合,例如:
ios_base::out : ios_base::app | ios_base::binary
注:
ios_base::out本身将导致文件被截短(既清空),但和
ios_base::in一起使用时,不会导致文件被截短
二进制文件
使用write()和
read()方法,配合使用。
注意:由于这两个方法都是安字节从内存中读取,所以第一个参数指针必须强制转化为
(char *)
随机存取
使用seekp()
seekg()移动文件存取位置
使用
tellp()
tellg()获取文件存取当前的位置
by the way:
cstdio中
tmpnam()创建临时文件名
内核格式化
<sstream>头文件使得可以使用
ostream方法格式化信息写入
string对象中,并使用
istream方法格式化读取
string对象中的内容。
这种方式被称为内核格式化
相关文章推荐
- C语言--函数指针和回调函数
- C++ 运算符重载的注意点
- C++ Primer学习7:const iterator与const_iterator的区别
- C++ Primer快速学习 第一章 入门之二:输入与输出 (IO)
- C++ Primer学习6:const指针 和 指针与const限定符区别
- 更新代码和工具,组织起来,提供所有博文(C++,2014.09)
- C++ Primer学习5:vector使用下标操作元素注意
- C++ Primer 学习4:string类使用重载操作符+的注意
- error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
- c++ std::string 用法
- C++_利用栈进行运算符表达式的运算
- C++实现Log()日志函数
- C++中的头文件和源文件
- 第十六周oj刷题——Problem A: C++类实现最大数的输出
- 第十五周oj刷题——Problem N: C++习题 复数类--重载运算符3+
- GoogleCpp风格指南 8)格式 _part1
- C语言中存储类型和Static关键字
- C++ int与string的转化
- C语言数组学习
- STM8S之时钟设置