ç»ä½ çä¸ä¸ªç®åçæµè¯ç¨åº
read å write ç ç¼å²åºåæ° ä½¿ç¨ (char *) ç±»åï¼
æ以æ³åæ³æé 以ç¼å²åºï¼ä¸åé交æ¢æ°æ®ï¼è¯»åéç¨æ´ä½æä½
ä¸é¢çæµè¯æ¯éç¨èåçæ¹å¼ï¼ä¹å¯ä»¥éç¨å¯¹è±¡æ°ç»çæ¹å¼æä½
注æ!! ä¸è¦ç»å·²åå¨çéè¦æ件å è¿è¡ä¸é¢çç¨åºï¼æ件å
容å°è¢«æ¸
é¤é æä¸å¯æ½åçæ失ã
#include <fstream>
#include <iostream>
using namespace std;
union IODWord{
int sint;
unsigned uint;
float ffloat;
char ch[4];
};
int main(int argc,char * argv[]){
if(argc!=2){
cout<<"USAGE: "<<argv[0]<<" filename"<<endl;
exit(1);
}
cout<<"program name:"<<argc[0]<<endl;
cout<<"io file name:"<<argc[1]<<endl;
ofstream out;
out.open(argv[1],ios::binary|ios::out); //äºè¿å¶æ¹å¼æå¼æ件并æ¸
é¤å
容ï¼ä¸åå¨åå建
cout<<sizeof(int)<<"\
";
cout<<sizeof(unsigned int)<<"\
";
cout<<sizeof(float )<<"\
";
cout<<sizeof(char )<<"\
";
cout<<sizeof(long int)<<"\
";
cout<<sizeof(double)<<"\
";
IODWord outbuf[20];
for (int i=0;i<5;i++){
outbuf[i*4].sint = - i;
outbuf[i*4+1].uint= i;
outbuf[i*4+2].ffloat= (float) i*3.14;
outbuf[i*4+3].ch[0]='a'+i;
outbuf[i*4+3].ch[1]='A'+i;
outbuf[i*4+3].ch[2]='0'+i;
outbuf[i*4+3].ch[3]='9'-i;
}
for(int j=0;j<10;j++){
out.write((char *) outbuf,sizeof(outbuf));
}
out.close();
ifstream in;
in.open("abc.bin",ios::in|ios::binary);
IODWord ibuf[4];
while(in.good()){
in.read((char *)ibuf,sizeof(ibuf));
cout<<"sint="<<ibuf[0].sint<<"\\t";
cout<<"uint="<<ibuf[1].uint<<"\\t";
cout<<"float="<<ibuf[2].ffloat<<"\\t";
cout<<"char="<<ibuf[3].ch[0]<<ibuf[3].ch[1]<<ibuf[3].ch[2]<<ibuf[3].ch[3]<<endl;
}
}
温馨提示:答案为网友推荐,仅供参考