在C ++中实现“app.exe -instruction file”表示法

时间:2009-05-11 17:00:45

标签: c++ command-line-arguments

我的Data Structures类有一个项目,它是一个使用二叉树和其他东西工作的文件压缩器。我们需要使用命令行中的以下说明“压缩”和“解压缩”任何给定文件:

压缩: compressor.exe -zip file.whatever

用于解压缩: compressor.exe -unzip file.zip

我们正在编写 C ++ 。我使用IDE Code :: Blocks并在Windows中使用GCC进行编译。

我的问题是:你如何实现它?!! 如何让你的.exe在命令行中接收这些参数,然后按照你想要的方式执行它们?

此外,如果我希望在Linux中编译该实现,请记住哪些特殊内容?

感谢您的帮助

3 个答案:

答案 0 :(得分:9)

您可能希望在编程文本中查找main函数的签名,即程序的入口点。这就是您可以提取这些命令行参数的地方。

我不想比这更详细,因为这显然是作业的关键点,如果我发现自己和你合作,我会期望你能够把这种东西弄清楚一旦你收到适当的轻推,你自己。 :)

祝你好运!

答案 1 :(得分:2)

我记得,单UNIX规范/ POSIX在unistd.h中定义getopt来处理为你解析的参数。虽然这是一个C函数,但它也适用于C ++。

GNU GLIBC has this除了getopt_long(在getopt.h中)以支持GNU的扩展风格。

答案 2 :(得分:1)

Lologré,我知道了!

我现在对如何在 main()函数中使用 argc argv [] 参数有了基本的了解(I < em>总是想知道他们有什么好处......)。例如,如果我输入命令行:

compressor.exe -unzip file.zip

然后:

  • argc初始化为'3'(行中的参数数量)
  • argv [0] ==“compressor.exe”(应用名称。)
  • argv [1] ==“-unzip”
  • argv [2] ==“file.zip”

Greg(不是'Creg',抱歉= P)和Bemrose,谢谢你们的帮助!! ^^