📄 save3.cpp
字号:
// 读出已有二进制文件数据,建立格式化的文本文件,便于浏览、打印
#include "begin.h" //只保存售价,不保存原价
void others::save3(fstream f)
{ char *s="end";
fstream ftxt("e:\\其他配件.txt",ios::out); // 写方式打开文本文件
if(!ftxt)
{cerr<<"不能打开文件!"<<endl;
exit(1);
}
bargain peijian ;
f.seekg( 0, ios::end ) ;
long posEnd = f.tellg() ; // 记录二进制文件末尾位置
f.seekg( 0, ios::beg ) ; // 移动读指针到文件头
cout << "********** 保存文件 **********\n" ;
ftxt<<setiosflags(ios::left)<<setw(10)
<<"代号"<<setw(12)<<"名称"<<setw(30)
<<"简称"<<setw(10)<<"类型"<<setw(10)<<"数量"
<<setw(10)<<"价钱"<<endl;
do
{ f.read((char *) & peijian , sizeof(bargain)) ; // 从二进制文件读记录
// 把记录写入文本文件:
ftxt<<setiosflags(ios::left)<<setw(10)
<<peijian.id<<setw(12)<<peijian.name<<setw(30)
<<peijian.jiancheng<<setw(10)<<peijian.type <<setw(3)
<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed|ios::showpoint)<<peijian.account<<setw(11)
<<peijian.price<<endl;
} while (f.tellp() != posEnd) ;
ftxt.close() ;
cout << "文件已建立并保存,要浏览文件吗?( Y/N ) \n" ;
char answer;
cin >> answer ;
if ( answer=='Y' || answer=='y' )
{ ftxt.open( "e:\\其他配件.txt", ios::in ) ; // 重用流打开文件
f.seekg( 0, ios::end ) ;
long posEnd = f.tellg() ;
cout<<setiosflags(ios::left)<<setw(10)
<<"代号"<<setw(12)<<"名称"<<setw(30)
<<"简称"<<setw(10)<<"类型"<<setw(10)<<"数量"
<<setw(10)<<"价钱"<<endl;
for(f.seekg( 0, ios::beg );f.tellp() != posEnd;)
{
f.read((char *) & peijian , sizeof(bargain));
if(strcmp(peijian.id,s)==0)continue;
cout<<setiosflags(ios::left)<<setw(10)
<<peijian.id<<setw(12)<<peijian.name<<setw(30)
<<peijian.jiancheng<<setw(10)<<peijian.type <<setw(3)
<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed|ios::showpoint)<<peijian.account<<setw(11)
<<peijian.price<<endl;
}
}
ftxt.close() ; // 关闭文本文件
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -