c++-命令行参数怎么写啊,这个错误找了好久也解决不了

问题描述

命令行参数怎么写啊,这个错误找了好久也解决不了

#include
#include
#include
#include
using namespace std;

int _tmain(int argc, TCHAR* argv[])
{

    TCHAR * srcfile = NULL;
    TCHAR * tgtfile = NULL;
    ifstream src;
    ofstream tgt;
    string sd;
    for(int i = 1;i < argc; ++i)
    {
        cout<<"abc";
        if(_tcscmp(argv[i], _T("-src"))==0)
            {
                srcfile = argv[++i];
                cout<<"Source File Locate Sucessfullyn";
            }
        if(_tcscmp(argv[i], _T("-tgt"))==0)
            {
                tgtfile = argv[++i];
                cout<<"Target File Locate Sucessfullyn";
            }
        continue;
    }
    src.open(srcfile,ios::in);
    tgt.open(tgtfile,ios::out);
    if(!src)
        cout<<"srcfile emptyn";
    while(getline(src,sd))
    {
        tgt<<sd<<endl;
    }
    src.close();
    tgt.close();
    return 0;
}
![图片说明](http://img.ask.csdn.net/upload/201501/08/1420730932_772428.png)
求大神指点迷境,解惑啊,小弟感激不尽

解决方案

文件名中有空格么?

src.open(srcfile,ios::in);
tgt.open(tgtfile,ios::out);

在这里下断点调试下

解决方案二:

/#include "stdafx.h"
/#include
/#include
/#include
/#include
头文件

解决方案三:

错误::::::::::::::::::::::::::::::::::::::::::::::::::::

Microsoft Visual C++ Runtime Library

Debug Assertion Failed!

Program: E:Vitual 2012parameterDebugparameter.exe
File: f:ddvctoolscrt_bldself_x86crtsrcfopen.c
Line: 54

Expression: (file != NULL)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)


中止(A) 重试(R) 忽略(I)

解决方案四:

要么是没有权限,要么是srcfile文件名不完整,你调试下。

解决方案五:

点中止,用编译器调试

时间: 2024-10-05 15:39:00

c++-命令行参数怎么写啊,这个错误找了好久也解决不了的相关文章

C/C++中命令行参数的原理

很早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: copy c:\1.txt d:\ 在c/c++中,命令行参数的传递是利用main进行形参传递实现的 前面的教程中我们对面都进行了void main()或者是void main(void)的定义,这表示main不返回任何类型,和main不带有任何参数,但在缺剩状态下mian()这样形式下,形式参数一直是存在在栈空间内的只是隐藏了起来. 为了实现命令行参数我们将使用main(int argc,char* argv[])这样的形式

BCB的命令行参数

在你运行BCB的时候,你可以使用几个命令行参数来控制它的行为,这些参数的说明在BCB的帮助系统中,查找帮助主题,在索引中输入'IDE command-line options'就可以得到这些信息. 这里是一些有用的参数的摘要信息. -np = 在启动时不建立新的项目 -ns = 没有splash屏幕 (不减少装载时间) -dfoo.exe = 调试foo.exe -b foo.bpr = Builder项目foo.bpr -m foo.bpr = Make项目foo.bpr 注意:由于-b和-m

在C++ Builder中取得命令行参数

用过C语言编程的人都知道,在DOS下的编程可以通过main函数的参数取得命令行参数的个数以及每个参数的字符串,例如 int main(int argv ,char *argv[]) { - } 则命令行参数是argc个,这些参数分别存储在argv[0]-argv[argc-1]中,其中argv[0]是可执行文件的名字(含路径),那么Windows程序是怎么取得命令行参数的呢?用C语言写过windows程序的人都知道,在windows程序的主函数WinMain()中,有一个参数lpszCmd,这个

Oracle SQL*Loader详解(2) 命令行参数

sqlldr工具 SQL*Loader的客户端工具是sqlldr,在操作系统的命令行下输入sqlldr,后面不接任何参数,将显 示帮助信息如下所示(所有命令行参数的简单描述及其默认值),所以你并不需要对下面的参数死记硬 背,当你忘记它们时,可以通过这个方式快速查询. Valid Keywords: userid -- ORACLE username/password control -- control file name log -- log file name bad -- bad file

IE8浏览器的隐藏命令行参数

  IE8正式版的推出有一年多时间了,浏览器的好坏大家心里应该都有数了,相比之于IE6和IE7也很大的进步,也添加了不少有趣的新功能,如加速器.私密模式(InPrivate mode)等等,当然那除了这些功能,微软还给IE8浏览器添加了一些特定情况下可能很有用的命令行参数,添加参数是在IE8浏览器的属性的目标栏里-->右键-->属性. 我们可以通过下面这个例子来了解一下IE8参数功能: 在我们开发中Web浏览器正常情况下,如果想给客户演示一个,多个用户的流程;因为Web程序本身使用Sessio

IBM Key Management工具(iKeyMan)脚本吃掉%*$*无法接收命令行参数之解

http://www.java2class.net/bbs/viewthread.php?tid=230   iKeyman工具是一个图形化用户界面的数字证书管理工具.通过它可以创建一个新的密钥库.测试数字证书.增加CA根到密钥库.从一个密钥库拷贝证书到另一个密钥库,以及从CA机构请求和接收数字证书.设置默认的密钥.更改密码等等. 但是由于IBM产品中所附带的脚本中对接收命令行的参数没有进行有效的处理,以致于想通过命令行进行传递定制的参数无法顺利进行. 对于AIX.Linux.Solaris可以

c++main函数的命令行参数问题

问题描述 c++main函数的命令行参数问题 int main(int argcchar *argv[]);函数从命令行读取参数1.是不是只有生成了test.exe文件之后才能从命令行读取参数(因为我看见 好多都是在命令行输入test.exe后面再加一些参数这样子的),也就是说 我还在调试阶段就不能从命令行输入参数?2.没有从命令行输入参数的时候,argc=1,*argv[0]是程序的路径的名称,如果main后面的括号里面没有东西,是不是意味着我不能在命令行里运行他,因为找不到路径? 解决方案

MySQL命令行参数完整版

MySQL命令行参数完整版 mysql教程支持下面的选项: ---help,-? 显示帮助消息并退出. --batch,-B 打印结果,使用tab作为列间隔符,每个行占用新的一行.使用该选项,则mysql不使用历史文件. --character-sets -dir=path 字符集的安装目录. --compress,-C 压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩). ---database=db_name,-D db_name 要使用的数据库教程.主要在选项文件中有用. ---

c语言-C语言中的命令行参数有什么作用?

问题描述 C语言中的命令行参数有什么作用? 最近再学习C语言,在学习到命令行参数的问题的时候搞清楚了命令行参数的用法以及怎么实现的,但是目前无法理解命令行参数到底在实际编程当中的作用是是什么? 希望得到好心人的帮助,谢谢. 解决方案 你可以做一个实验.按键盘上ctrl右边的windows键,不松手,再按下r,打开运行对话框. 输入如下命令 explorer 运行,你会打开一个我的电脑的窗口,默认显示的是你的文档或者当前目录. 关闭,再输入 explorer c: 这次打开我的电脑,并且默认显示的