C++用输入输出流实现文件的复制

想利用C++中文件的输入输出流实现TXT文件的复制。流程:创建一个文件写入一些内容,随后创建另一个文件将前文件的内容复制到后一个文件中。在考虑的实现方式:一个字符一个字符... 想利用C++中文件的输入输出流实现TXT文件的复制。流程:创建一个文件写入一些内容,随后创建另一个文件将前文件的内容复制到后一个文件中。在考虑的实现方式:一个字符一个字符的复制。大神来看看出了什么问题:
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;

int main(){
char v[]=("Do you like games?\nI want to play a game with you.");
ofstream os("119.txt",ios_base::out/ios_base::binary);
os.write(reinterpret_cast<char*>(&v),sizeof(v));

ofstream copy("119-copy.txt",ios_base::out/ios_base::binary);

ifstream is("119.txt",ios_base::out/ios_base::binary);
int i=0;
while(is){
is.seekg(i*sizeof(char));
char v;
is.read(reinterpret_cast<char*>(&v),sizeof(1));
copy.write(reinterpret_cast<char*>(&v),sizeof(1));
}
return 0;
}

编译后在copy文件中出现了两个“烫”(我也是醉了),想问问大神问题出在哪里?
展开
 我来答
匿名用户
推荐于2016-03-22
展开全部
循环中又定义了一次char v;把外面的v覆盖掉了。
用reinterpret_cast是什么心态,绝大部分程序都不会用到这种强制类型转换,一般是你自己把类型搞错了。reinterpret_cast<char*>(&v)都可以直接换成v。
删掉你的char v;。
os.write(v,sizeof(v));
is.read(v,sizeof(v));
copy.write(v,sizeof(v));
就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式