2
我的功能是copy2,我在cplusplus.com上找到了功能copy1,我用的是copy2并且有问题,但是拷贝1没问题,copy2导致关于测试文件mp3的atist,title,...的损失信息,我不明白为什么?为什么ofstream :: get()和put()会导致信息丢失?
#include <fstream>
#include <iostream>
using namespace std;
void copy1()
{
char * buffer;
long size;
ifstream infile ("Test.mp3",ifstream::binary);
ofstream outfile ("Test2.mp3",ofstream::binary);
// get size of file
infile.seekg(0,ifstream::end);
size=infile.tellg();
infile.seekg(0);
// allocate memory for file content
buffer = new char [size];
// read content of infile
infile.read (buffer,size);
// write to outfile
outfile.write (buffer,size);
// release dynamically-allocated memory
delete[] buffer;
cout<<"xong";
outfile.close();
infile.close();
return ;
}
void copy2(){
ifstream infile ("Test.mp3",ios::binary);
ofstream outfile ("Test1.mp3",ios::binary);
char c;
while(!infile.eof())
{
infile.get(c);
outfile.put(c);
}
}
int main() {
copy2();
}
你怎么知道信息丢失了?你用什么程序/工具/过程来确定? –