文件输入输出流01(C++)
程序员文章站
2024-03-17 09:13:52
...
手工在程序所在目录下创建 1 个文本文件 Data.txt,该文件中存放了 9 个 int 数据,各数据之间以空格间隔。编写 1 个程序,使用文件流的相关方法顺序完成以下操作:
a) 读取文件 Data.txt 中的所有数据;
b) 将读取得到的数据以二进制的形式存放到程序所在目录下的文件 Res.dat 中;
c) 再次读取 Res.dat 中的所有数据;
d) 并将这些数据以文本文件的形式存放到程序所在目录下的 Res.txt 文件中,存放时每行 2 个数据,每个数据占 10 列,右对齐,左边补'C'字符
/*===========================================================================================================
*学号:1527403059
*作业:E02
*功能:手工在程序所在目录下创建一个文本文件Data.txt,该文件中存放了9个int数据,各数据之间以空格间隔。
。编写一个程序,使用文件流的相关方法顺序完成以下操作:
(a)、读取文件Data.txt中的所有数据。
(b)、将读取得到的数据以二进制的形式存放到程序所在目录下的文件Res.dat中。
(c)、再次读取Res.dat中的所有数据。
(d)、并将这些数据以文本文件的形式存放到程序所在目录下的Res.txt文件中,存放时每行2个数据,每个数据占
10列,右对齐,左边补'C'字符
*作者:陆胤任
*日期:2016.3.6
*============================================================================================================*/
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
const int N=9; //定义常量
int main()
{
int arry[N],i;
fstream in,out1,out2;
int count;
in.open("Data.txt",ios::in); //输入,读取文件数据
out1.open("Res.dat",ios::out|ios::binary); //创建二进制文件,输出数据
if(!in) //检验文件是否打开失败
{
cout<<"open file fail!\n";
exit(0);
}
count=0;
while(in>>arry[count]) //将文件数据内容存入数组
{
count++;
}
cout<<"文件中是数据内容为:"<<endl;
for(i=0;i<N;i++) //显示文件数据内容
{
cout<<arry[i]<<" ";
}
cout<<"\n";
for(i=0;i<N;i++) //将文件数据转换为二进制存放在二进制文件中
{
out1.write((char*)&arry[i],sizeof(int));
}
in.close(); //关闭文件
out1.close(); //关闭文件
out1.open("Res.dat",ios::in|ios::binary);
out2.open("Res.txt",ios::out); //文本文件
for(i=0;i<N;i++)
{
out1.read((char*)&arry[i],sizeof(int)); //读取二进制文件保存在数组中
}
int k=0;
for(i=0;i<N;i++) //将二进制文件中的数据存放在文本文件中
{
out2<<setw(10)<<right<<setfill('C')<<arry[i]<<" ";
k++;
if(k%2==0)
{
out2<<'\n'; //换行
}
}
out1.close(); //关闭文件
out2.close(); //关闭文件
}