问题是例如:
我有个文件a1 里面的内容是文本 1F3A
我要把文件里面的文本 1F3A 读出来 写入到文件a2里面
要求用二进制来存 1F3A 相当于存入 0001111100111010 我主要是不知道怎么 建立\写入 二进制文件
请各位指导一下
我有个文件a1 里面的内容是文本 1F3A
我要把文件里面的文本 1F3A 读出来 写入到文件a2里面
要求用二进制来存 1F3A 相当于存入 0001111100111010 我主要是不知道怎么 建立\写入 二进制文件
请各位指导一下
void f()
{
FILE *in,*out;
int a;
if((in=fopen("a1.txt","r"))==NULL)
{
cout<<"Error!Can not open file a1.txt"<<endl;
return;
}
if((out=fopen("a2.dat","wb"))==NULL)
{
cout<<"Error!Can not create file a2.dat"<<endl;
return;
}
fscanf(in,"%d",&a);
fwrite(&a,sizeof(a),1,out);
fclose(in);
fclose(out);
}
这些基本上是用C语言实现的,至于纯粹的用C++来实现我就不太知道了,应该可以用CFile来实现,你可以看看msdn或问问别人。
atoi()转换一下。
写入。
if ( !fr.Open("a1.txt", CFile::modeRead | CFile::typeBinary) ) return;
if ( !fw.Open("b2.bin", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary) ) {
fr.Close();
return;
}
int iCnt;
char ch;
while (1) {
iCnt = fr.Read(&ch, 1);
if (iCnt <= 0) break; if (ch >= '0' && ch <= '9') ch = ch - '0';
else if (ch >= 'A' && ch <= 'F') ch = ch - 'A' + 10;
else if (ch >= 'a' && ch <= 'f') ch = ch - 'a' + 10;
else break;
fw.Write(&ch, 1);
} fr.Close();
fw.Close();