#include <fstream> //使用文件必须包含该类
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char ch,f1[256],f2[256];
cout<<"请输入源文件名?";
cin>>f1;
cout<<"请输入目标文件名?";
cin>>f2;
ifstream in;
in.open(f1,ios::in|ios::_Nocreate); //创建与源文件f1对应的文件流in
ofstream out(f2); //创建与目标文件f2对应的文件流out
if(!in) //只能将文件放在根目录下。。。???
{
cout<<"\n不能打开源文件:"<<f1;
return 0;
}
if(!out)
{
cout<<"\n不能打开目标文件:"<<f2;
return 0;
}
in.unsetf(ios::skipws);
while(in>>ch)
{
out<<ch;
}
in.close();
out.close();
cout<<"\n复制完毕!"<<endl;
system("PAUSE");
return 0;
}
不知道你的问题出在哪里了,但是我这里确实可以运行成功,而且支持中文文件名,非当前目录也可以,不在根目录也可以,中文文件名也可以,路径中有中文也可以,而且文件内容是"abcd中文",就是说,中英文都有,下面是正确的代码和运行结果,希望对你有帮助:)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
ifstream infile;
ofstream outfile;
char ch;
char infilename[256];
char outfilename[256];
cin >> infilename;
infile.open(infilename);
if (!infile)
{
cerr << "infile open failed!" << endl;
exit(EXIT_FAILURE);
}
else
{
cout << "infile open success :)" << endl;
}
cin >> outfilename;
outfile.open(outfilename);
if (!infile)
{
cerr << "outfile open failed!" << endl;
exit(EXIT_FAILURE);
}
else
{
cout << "outfile open success :)" << endl;
}
while (infile >> ch)
{
outfile << ch;
}
infile.close();
outfile.close();
cout << "复制完毕!" << endl;
return 0;
}
运行过程及结果:
路径肯定正确,那如果是第二个问题,那如何解决呢