将文件作为命令行参数传递

时间:2014-04-02 20:32:16

标签: c command-line command-line-arguments

我的程序应该从命令行读取加密文件,但我不知道如何传递命令行参数。以下是说明:

*移位密码是一种非常基本的加密算法,其中通过用明字符中的每个字符替换字母中后面的固定数量的字符(即移位值)来执行加密。例如,如果我们的移位值为2,则明文白菜变为ecddcig。

很容易看出,移位密码非常弱,因为只有26种可能的移位方式(其中一种方法与完全不移位相同)。您的程序应该在命令行中读取已使用移位密码加密的文件的名称。它将使用所有可能的移位值解密文件,然后确定哪个移位值是正确的。程序决定的移位值是正确的,当应用时,它导致出现在字典中的文件单词的最高百分比。 *

我编写的函数用于将字符串中的字符移动n,用于确定给定单词是否出现在字典中的函数,以及将字符串拆分为标记的函数。

1 个答案:

答案 0 :(得分:2)

在C中,您可以在main函数中使用argcargv访问命令行参数。像这样:

int main(int argc, char *argv[]) 
{
    for (int i = 1; i < argc; i++) {
        printf("%s\n", argv[i]);
    }
}

请注意,我从argv列表中的第二项开始,因为第一项始终是可执行文件本身的名称。 使用./program file.txt file2.txt进行调用时,会打印

file.txt
file2.txt

希望有所帮助!