鱼C论坛

 找回密码
 立即注册
查看: 3042|回复: 11

大家来看看,看完C++《第04讲-从另一个小程序接着说》写的,用cmd输入老是说打开失败

[复制链接]
发表于 2014-8-18 09:55:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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[1]);
    if (!in)
    {
        cerr << "打开"<<argv[1]<<"失败" << endl;
        return 0;
    }
    out.open(argv[2]);
    if (!out)
    {
        cerr << "打开" << argv[2] << "失败" << endl;
        in.close();
        return 0;
    }
    char x;
    while (in >> x)
    {
        cout << x;
        out << x;
    }
    in.close();
    out.close();
    cout << "复制成功" << endl;
    _getch();
    return 0;
}
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-18 18:02:25 | 显示全部楼层
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出现你所说的错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-18 19:58:19 | 显示全部楼层
ifstream要打开文件输入流,如果指定文件不存在,不会自动创建,因而返回NULL
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-18 20:13:22 | 显示全部楼层
初学,可以使用文件的绝对路径
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 09:07:13 | 显示全部楼层
elvo 发表于 2014-8-18 18:02
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出 ...

有呢,我把程序中的argv[1]和argv[2]改为文件名的话(比如:text.txt)就可以使用,但在cmd模式下用不了,不知道为啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 09:07:51 | 显示全部楼层
elvo 发表于 2014-8-18 18:02
程序应该是没有错的,在debug(如果你是debug模式)下面有没有text.txt 和1.txt这两个文件?如果没有就会出 ...

有呢,但还是打不开呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 09:08:32 | 显示全部楼层
沉默默 发表于 2014-8-18 19:58
ifstream要打开文件输入流,如果指定文件不存在,不会自动创建,因而返回NULL

文件是存在的呢,但还是打不开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 09:12:05 | 显示全部楼层
仰望天上的光 发表于 2014-8-18 20:13
初学,可以使用文件的绝对路径

如果在程序代码中使用相对路径去打开文件就不会出错,(把argv改成文件名),但我想扩展它的功能,实现可指定打开的文件:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-19 12:53:19 | 显示全部楼层
xqlsrjjjh 发表于 2014-8-19 09:07
有呢,但还是打不开呢

你的程序怎么在桌面上?工程就建在桌面,还是你将你的exe程序复制到了桌面,如果是这样,那么你的两个txt文件都应该在桌面,或者不写相对路径,绝对路径试一试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 13:56:32 | 显示全部楼层
elvo 发表于 2014-8-19 12:53
你的程序怎么在桌面上?工程就建在桌面,还是你将你的exe程序复制到了桌面,如果是这样,那么你的两个txt ...

成啦,如果使用绝对路径就可以,不过相对路径怎么不行呢,(我的exe文件和txt文件都放在桌面上):lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-19 13:58:27 | 显示全部楼层
xqlsrjjjh 发表于 2014-8-19 09:12
如果在程序代码中使用相对路径去打开文件就不会出错,(把argv改成文件名),但我想扩展它的功能,实现可 ...

在工程中打开文件,默认当前路径是.dsw文件所在的路径
cmd中打开的话,你需要先用cd命令切换到该路径下才可以。
而直接双击打开,默认当前路径是.exe文件所在的路径。
所以说,用相对路径很麻烦。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 14:02:31 | 显示全部楼层
仰望天上的光 发表于 2014-8-19 13:58
在工程中打开文件,默认当前路径是.dsw文件所在的路径
cmd中打开的话,你需要先用cd命令切换到该路径下 ...

哦,原来是这样,谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表