3个回答
展开全部
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
using namespace std;
//定义写入文件的数据结构
struct HANGBAN
{
char hangbanhao[15];
char qishi[15];
char daoda[15];
char time[20];
int dingpiaoshu;
int zongpiaoshu;
int yupiaoshu;
bool mancang;
};
int main()
{
//初始化要写入文件中的结构体数据
HANGBAN hangban;
strcpy(hangban.hangbanhao,"航班CA141");
strcpy(hangban.qishi,"长沙");
strcpy(hangban.daoda,"北京");
strcpy(hangban.time,"2010-11-06");
hangban.dingpiaoshu=10;
hangban.zongpiaoshu=100;
hangban.yupiaoshu=90;
hangban.mancang=true;
//文本文件格式读取和写入文件
//已文本文件格式写入d:\1.txt文件中,数据项之间必须使用分隔符,建议使用\n作为分隔符
fstream fout1("d:\\1.txt",ios_base::out);
fout1<<hangban.hangbanhao<<std::endl
<<hangban.qishi<<std::endl
<<hangban.daoda<<std::endl
<<hangban.time <<std::endl
<<hangban.zongpiaoshu<<std::endl
<<hangban.dingpiaoshu<<std::endl
<<hangban.yupiaoshu<<std::endl
<<hangban.mancang<<std::endl;
//写入两次
fout1<<hangban.hangbanhao<<std::endl
<<hangban.qishi<<std::endl
<<hangban.daoda<<std::endl
<<hangban.time <<std::endl
<<hangban.zongpiaoshu<<std::endl
<<hangban.dingpiaoshu<<std::endl
<<hangban.yupiaoshu<<std::endl
<<hangban.mancang<<std::endl;
fout1.close();
//文本文件格式方式读取文件
fstream fin1("d:\\1.txt",ios_base::in);
while(!fin1.eof())
{
//使用>>读取字符串数据的时候,如果原始数据中包含空格等分隔符,会导致程序读取失败
fin1>>hangban.hangbanhao
>>hangban.qishi
>>hangban.daoda
>>hangban.time
>>hangban.zongpiaoshu
>>hangban.dingpiaoshu
>>hangban.yupiaoshu
>>hangban.mancang;
cout<<hangban.hangbanhao
<<setw(10)<<hangban.qishi
<<setw(9)<<hangban.daoda
<<setw(9)<<hangban.time
<<setw(9)<<hangban.zongpiaoshu
<<setw(9)<<hangban.dingpiaoshu
<<setw(9)<<hangban.yupiaoshu //这里的数据读不进去呀
<<setw(9)<<hangban.mancang<<endl;
}
fstream fout("d:\\2.txt",ios_base::out|ios::binary);
fout.write((char *)(&hangban),sizeof(hangban));
hangban.dingpiaoshu=20;
fout.write((char *)(&hangban),sizeof(hangban));
hangban.dingpiaoshu=30;
fout.write((char *)(&hangban),sizeof(hangban));
fout.close();
fstream fin("d:\\2.txt",ios_base::in|ios::binary);
do
{
fin.read((char *)(&hangban),sizeof(hangban));
if (fin.eof()) break;
cout<<hangban.hangbanhao
<<setw(10)<<hangban.qishi
<<setw(9)<<hangban.daoda
<<setw(9)<<hangban.time
<<setw(9)<<hangban.zongpiaoshu
<<setw(9)<<hangban.dingpiaoshu
<<setw(9)<<hangban.yupiaoshu //这里的数据读不进去呀
<<setw(9)<<hangban.mancang<<endl;
}while(true);
system("pause");
return 0;
}
#include <iomanip>
#include <fstream>
#include <cstring>
using namespace std;
//定义写入文件的数据结构
struct HANGBAN
{
char hangbanhao[15];
char qishi[15];
char daoda[15];
char time[20];
int dingpiaoshu;
int zongpiaoshu;
int yupiaoshu;
bool mancang;
};
int main()
{
//初始化要写入文件中的结构体数据
HANGBAN hangban;
strcpy(hangban.hangbanhao,"航班CA141");
strcpy(hangban.qishi,"长沙");
strcpy(hangban.daoda,"北京");
strcpy(hangban.time,"2010-11-06");
hangban.dingpiaoshu=10;
hangban.zongpiaoshu=100;
hangban.yupiaoshu=90;
hangban.mancang=true;
//文本文件格式读取和写入文件
//已文本文件格式写入d:\1.txt文件中,数据项之间必须使用分隔符,建议使用\n作为分隔符
fstream fout1("d:\\1.txt",ios_base::out);
fout1<<hangban.hangbanhao<<std::endl
<<hangban.qishi<<std::endl
<<hangban.daoda<<std::endl
<<hangban.time <<std::endl
<<hangban.zongpiaoshu<<std::endl
<<hangban.dingpiaoshu<<std::endl
<<hangban.yupiaoshu<<std::endl
<<hangban.mancang<<std::endl;
//写入两次
fout1<<hangban.hangbanhao<<std::endl
<<hangban.qishi<<std::endl
<<hangban.daoda<<std::endl
<<hangban.time <<std::endl
<<hangban.zongpiaoshu<<std::endl
<<hangban.dingpiaoshu<<std::endl
<<hangban.yupiaoshu<<std::endl
<<hangban.mancang<<std::endl;
fout1.close();
//文本文件格式方式读取文件
fstream fin1("d:\\1.txt",ios_base::in);
while(!fin1.eof())
{
//使用>>读取字符串数据的时候,如果原始数据中包含空格等分隔符,会导致程序读取失败
fin1>>hangban.hangbanhao
>>hangban.qishi
>>hangban.daoda
>>hangban.time
>>hangban.zongpiaoshu
>>hangban.dingpiaoshu
>>hangban.yupiaoshu
>>hangban.mancang;
cout<<hangban.hangbanhao
<<setw(10)<<hangban.qishi
<<setw(9)<<hangban.daoda
<<setw(9)<<hangban.time
<<setw(9)<<hangban.zongpiaoshu
<<setw(9)<<hangban.dingpiaoshu
<<setw(9)<<hangban.yupiaoshu //这里的数据读不进去呀
<<setw(9)<<hangban.mancang<<endl;
}
fstream fout("d:\\2.txt",ios_base::out|ios::binary);
fout.write((char *)(&hangban),sizeof(hangban));
hangban.dingpiaoshu=20;
fout.write((char *)(&hangban),sizeof(hangban));
hangban.dingpiaoshu=30;
fout.write((char *)(&hangban),sizeof(hangban));
fout.close();
fstream fin("d:\\2.txt",ios_base::in|ios::binary);
do
{
fin.read((char *)(&hangban),sizeof(hangban));
if (fin.eof()) break;
cout<<hangban.hangbanhao
<<setw(10)<<hangban.qishi
<<setw(9)<<hangban.daoda
<<setw(9)<<hangban.time
<<setw(9)<<hangban.zongpiaoshu
<<setw(9)<<hangban.dingpiaoshu
<<setw(9)<<hangban.yupiaoshu //这里的数据读不进去呀
<<setw(9)<<hangban.mancang<<endl;
}while(true);
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询