【发布时间】:2014-11-12 04:33:57
【问题描述】:
我的程序应该从命令行读取加密文件,但我不知道如何传递命令行参数。这些是说明:
*移位密码是一种非常基本的密码算法,其中通过将明文中的每个字符替换为字母表中后面固定数量的字符(即移位值)的字符来执行加密。例如,如果我们的 shift 值为 2,那么明文 cabbage 就变成了 ecddcig。
很容易看出移位密码非常弱,因为只有 26 种可能的移位方式(其中 26 种方式中的一种与根本不移位相同)。您的程序应该在命令行读取已使用移位密码加密的文件的名称。它将使用所有可能的移位值解密文件,然后确定哪个移位值是正确的。程序确定正确的移位值是在应用时导致文件单词出现在字典中的最高百分比的值。 *
我编写了将字符串中的字符移动 n 的函数、确定给定单词是否出现在字典中的函数以及将字符串拆分为标记的函数。
【问题讨论】:
-
您知道
main函数的参数吗?argc和argv参数我确定你以前见过吗?这些包含在命令行上传递的参数。我建议你尝试一下,打印出argc的值,以及从零循环到argc并打印出argv数组中的相应条目。 -
所以如果我想传递一个文件,我会在编译 .c 文件时在命令行中包含文件名吗?
-
不,您将文件名作为参数传递给创建的可执行文件。喜欢
./my_program /some/path/to/my/file。然后,此文件名将作为字符串 ("/some/path/to/my/file") 在argv[1]中。不过记得先检查argc至少是2。 -
那么如果我想在程序中操作文件,我会使用 argv[1] 来引用它?
标签: c command-line command-line-arguments