|

楼主 |
发表于 2016-7-5 08:08:07
|
显示全部楼层
本帖最后由 S.W.T 于 2016-7-5 08:10 编辑
这是我修改后可以用的代码,但还是不知道为什么
- //File Copy.cpp
- //功能:复制文件
- //软件:C-Free 5.0
- //小甲鱼快速入门C++第四课
- #include<iostream>
- #include<fstream>
- using namespace std;
- int main(int argc,char* argv[])
- {
- //检查调用格式是否正确
- if(argc!=3)
- {
- cerr<<"调用格式:fileCopy.exe sourceFile destFile"<<endl;
- return 0;
- }
-
- //检查文件是否正确打开
- fstream in(argv[1],ios::in | ios::binary);//以二进制读取文件
- if(!in)
- {
- cerr<<"打开文件失败!"<<endl;
- return 0;
- }
-
- //检查文件是否正确打开
- fstream out(argv[2],ios::out | ios::binary);//以二进制写入文件
- if(!out)
- {
- cerr<<"打开文件失败!"<<endl;
- in.close();
- return 0;
- }
-
-
- //****************核心内容****************
- in.seekg(0,ios::end); //原来是 in.seekg(ios::end);
- int filesize = in.tellg();
- in.seekg(0,ios::beg); //原来是 in.seekg(ios::beg);
- //上三行是为了 获取文件的大小
-
- char ch;//临时变量
-
- //两个方法,但似乎第二个方法不行
- for(int i = 0; i < filesize; i ++)
- //while(!in.eof()) 最后会有乱码
- {
- in.get(ch); //原来是:in>>ch;
- out.put(ch); //原来是:out<<ch;
- }
-
- //结尾工作
- in.close();
- out.close();
- return 0;
- }
复制代码 |
|