加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

命令行带参数的C程序调试

(2017-06-16 17:34:56)
标签:

命令行带参数

main函数带参数

程序调试

分类: 计算机软件与C/CPP编程

如果在VC6.0集成开发环境中直接按单步执行按钮运行main函数带参数的这个程序,此时,我们监视变量argc会发现其值为1,也就只有argv[0]指向了命令名字符串,显然,用户程序没有得到系统传进来的任何参数,程序很难继续往下调试。argcargv[0]的取值如下图所示:

http://s11/mw690/0029z4zgzy7bUXWQKMi8a&690

解决的办法有两种:

一、选择菜单Project / settings...,弹出Project settings对话框,选择Debug(调试)选项卡,在Program arguments(程序变量)输入框中输入相应的命令行参数就可以了。比如我们希望给用户程序传进去两个参数t1.txtt2.txt,那么就只需要在下图红色输入框中输入“t1.txt t2.txt”就行了。

 http://s10/mw690/0029z4zgzy7bUYE22dXd9&690


         然后,再按单步执行,再监视argcargv,我们就能看见下图的效果:

http://s1/bmiddle/0029z4zgzy7bUYFzqlG20&690

       显然,用户程序得到了系统通过main函数带参数传进来的两个参数。这样,程序就可以继续往下调试了。

       二、先正常地编译、连接用户程序,并生成可执行文件,比如我们有一个ccopy.c的源文件如下:

  http://s14/bmiddle/0029z4zgzy7bUYI5TKBbd&690

       最后生成的可执行文件ccopy.exe如下:

http://s13/bmiddle/0029z4zgzy7bUYJiy4Iec&690

       然后打开命令提示符窗口,命令提示符窗口默认的盘符路径如下:

http://s10/bmiddle/0029z4zgzy7bUYK6FpT99&690

这个盘符路径不是我们用户程序ccopy.exe所在的盘符和路径,需要改变这个盘符和路径,操作过程如下:

http://s13/bmiddle/0029z4zgzy7bUYLdZPmec&690

在运行用户数程序ccopy.exe之前,要事先保证当前工作目录下存在t1.txt这样一个文件,如下图所示:

http://s16/bmiddle/0029z4zgzy7bUYMfBjFdf&690

现在我们才可以在命令行上输入用户程序名,带上参数,并执行它,如下图所示:

http://s4/bmiddle/0029z4zgzy7bUYNr9D5d3&690

         程序执行以后,我们到当前工作目录下一看,就应该多了一个t2.txt的文件了,而且文件里面存放的内容和t1.txt是一模一样的,如下图所示:

http://s2/bmiddle/0029z4zgzy7bUYOJ1UB71&690

         至此,命令行带参数的C程序调试就大功告成!
     显然,单纯地使用上面哪一种方法都是不全面的。真正调试程序的时候,建议使用方法一。程序调试成功以后,要实际运行一下这个程序,应使用方法二。

0

阅读 收藏 喜欢 打印举报/Report
后一篇:朗诵体会
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有