大家来看看,看完C++《第04讲-从另一个小程序接着说》写的,用cmd输入老是说打开失败
#include<iostream>#include<fstream>
#include<conio.h>
using namespace std;
int main(int argc,char *argv[])
{
ifstream in;
ofstream out;
if (argc != 3)
{
cout << "输入错误";
exit(1);
}
in.open(argv);
if (!in)
{
cerr << "打开"<<argv<<"失败" << endl;
return 0;
}
out.open(argv);
if (!out)
{
cerr << "打开" << argv << "失败" << endl;
in.close();
return 0;
}
char x;
while (in >> x)
{
cout << x;
out << x;
}
in.close();
out.close();
cout << "复制成功" << endl;
_getch();
return 0;
}
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出现你所说的错误 ifstream要打开文件输入流,如果指定文件不存在,不会自动创建,因而返回NULL 初学,可以使用文件的绝对路径 elvo 发表于 2014-8-18 18:02
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出 ...
有呢,我把程序中的argv和argv改为文件名的话(比如:text.txt)就可以使用,但在cmd模式下用不了,不知道为啥 elvo 发表于 2014-8-18 18:02
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出 ...
有呢,但还是打不开呢 沉默默 发表于 2014-8-18 19:58
ifstream要打开文件输入流,如果指定文件不存在,不会自动创建,因而返回NULL
文件是存在的呢,但还是打不开 仰望天上的光 发表于 2014-8-18 20:13
初学,可以使用文件的绝对路径
如果在程序代码中使用相对路径去打开文件就不会出错,(把argv改成文件名),但我想扩展它的功能,实现可指定打开的文件:lol: xqlsrjjjh 发表于 2014-8-19 09:07
有呢,但还是打不开呢
你的程序怎么在桌面上?工程就建在桌面,还是你将你的exe程序复制到了桌面,如果是这样,那么你的两个txt文件都应该在桌面,或者不写相对路径,绝对路径试一试 elvo 发表于 2014-8-19 12:53
你的程序怎么在桌面上?工程就建在桌面,还是你将你的exe程序复制到了桌面,如果是这样,那么你的两个txt ...
成啦,如果使用绝对路径就可以,不过相对路径怎么不行呢,(我的exe文件和txt文件都放在桌面上):lol: xqlsrjjjh 发表于 2014-8-19 09:12
如果在程序代码中使用相对路径去打开文件就不会出错,(把argv改成文件名),但我想扩展它的功能,实现可 ...
在工程中打开文件,默认当前路径是.dsw文件所在的路径
cmd中打开的话,你需要先用cd命令切换到该路径下才可以。
而直接双击打开,默认当前路径是.exe文件所在的路径。
所以说,用相对路径很麻烦。 仰望天上的光 发表于 2014-8-19 13:58
在工程中打开文件,默认当前路径是.dsw文件所在的路径
cmd中打开的话,你需要先用cd命令切换到该路径下 ...
哦,原来是这样,谢谢解答{:7_112:}
页:
[1]