9、流类库与输入/输出2.4二进制输出文件
2017-01-21 12:14
225 查看
最初设计流的目的是用于文本,因此默认的输出模式就是文本方式。在以文本模式输出时,若遇到换行符(十进制10)便自动被扩充为回车换行符(十进制13和10)。这种自动扩充有时可能出问题,请看下列程序:
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream os("test.txt");
os.write((char *)iarray,sizeof(iarray));
}
当执行程序,向文件中输出时,10会被自动转换成13,然后这里的转换显然不是我们需要的。要想解决这一问题,就要采用二进制模式输出。使用二进制模式输出时,其中所写的字符是不转换的,使用二进制模式输出到文件有下列方法:
1)使用ofstream构造函数中的模式参量指定二进制输出模式,例如:
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream os("test.txt",ios_base::binary);
os.write((char *)iarray,4);//向二进制文件中写4字节数据
}
2)使用open函数带一个二进制模式标志打开文件,例如
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream ofs;
ofs.open("test2.txt",ios_base::binary);
ofs.write((char *)iarray,4);//向二进制文件中写4字节数据
}
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream os("test.txt");
os.write((char *)iarray,sizeof(iarray));
}
当执行程序,向文件中输出时,10会被自动转换成13,然后这里的转换显然不是我们需要的。要想解决这一问题,就要采用二进制模式输出。使用二进制模式输出时,其中所写的字符是不转换的,使用二进制模式输出到文件有下列方法:
1)使用ofstream构造函数中的模式参量指定二进制输出模式,例如:
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream os("test.txt",ios_base::binary);
os.write((char *)iarray,4);//向二进制文件中写4字节数据
}
2)使用open函数带一个二进制模式标志打开文件,例如
#include<fstream>
using namespace std;
int iarray[2] = {99,10};
int main()
{
ofstream ofs;
ofs.open("test2.txt",ios_base::binary);
ofs.write((char *)iarray,4);//向二进制文件中写4字节数据
}
相关文章推荐
- C++中的文件输入/输出(5):二进制文件的处理
- 2.4 题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- DataInputStream(二进制输入流)和DataOutputStream二进制输出流(注意:in是从本地文件输入到程序中,out是从程序输出到本地种)
- USTC机试—将文件中输入的两个十进制数字异或后输出二进制到另一个文件中
- Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功能。
- 对一个标准的输入/输出窗口临时重定向到一个文件
- C++中的文件输入/输出(1):你的第一个程序
- C++中的文件输入/输出
- 输入输出文件的缓冲区
- C语言文件的输入输出函数
- c++ 文件的输入和输出
- 文件输入/输出
- C++中的文件输入/输出
- 读书笔记_C#技术内幕_第十七章(文件的输入/输出和串行化)
- 这个C++程序 输入一组数据 为何会输出很多个结果啊~ 是有关文件处理的
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- C++中的文件输入/输出
- C++中的文件输入/输出(2):读取文件
- 流类库与输入/输出
- C++文件输入,输出的操作