1

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

压缩: compressor.exe -zip file.whatever

解压: compressor.exe -unzip file.zip

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

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

另外,如果我希望该实现在 Linux 中编译,有什么特别需要注意的吗?

谢谢你的帮助

4

3 回答 3

9

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

我不想比这更详细,因为这显然是任务的关键点,如果我发现自己和你一起工作,我希望你能够自己解决这类问题一旦你收到适当的轻推。:)

祝你好运!

于 2009-05-11T17:03:33.627 回答
2

我记得,Single UNIX Specification / POSIX 在 unistd.h 中定义了getopt来为您处理参数解析。虽然这是一个 C 函数,但它也应该在 C++ 中工作。

除了 getopt_long(在 getopt.h 中)之外,GNU GLIBC还具有此功能,以支持 GNU 的扩展 --style 。

于 2009-05-11T17:11:09.387 回答
1

Lo logré,我明白了!

我现在对如何在main()函数中使用argcargv[ ]参数有了基本的了解(我一直想知道它们有什么用处……)。例如,如果我输入命令行:

压缩器.exe -解压文件.zip

然后:

  • argc 在 '3' 中初始化(行中的参数数量)
  • argv[0] == "compressor.exe" (应用程序名称)
  • argv[1] == "-解压缩"
  • argv[2] == "file.zip"

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

于 2009-05-11T18:06:14.010 回答