gpt4 book ai didi

c - 如何将用户输入的名称作为参数传递给下面给出的函数?

转载 作者:行者123 更新时间:2023-11-30 21:03:38 24 4
gpt4 key购买 nike

这是我需要帮助的代码部分 -

include <stdlib.h>
include <time.h>
include <stdio.h>
include "aes.h"

void encrypt(const char *fileIn, const char *fileOut,
const unsigned char *key);

void decrypt(const char *fileIn, const char *fileOut,
const unsigned char *key);

int main()
{
const unsigned char key[] = "my key";
srand(time(NULL));

aes_init();
encrypt( "main.c", "main.c.encrypted", key);
decrypt("main.c.encrypted", "main.c.decrypted", key);
return 0;
}
<小时/>

现在,我所做的是,每次运行程序之前......我转到代码并更改文件名,例如......

encrypt("main.c", "main.c.encrypted", key);
decrypt("main.c.encrypted", "main.c.decrypted", key);

encrypt("trial.doc", "trial.doc.encrypted", key);
decrypt("trial.doc.encrypted", "trial.doc.decrypted", key);
<小时/>

但是,我希望用户能够在程序运行时输入这些文件名。

我该怎么做?

最佳答案

用于将参数传递给程序,

int main (int argc, char *argv[]) { ...

是您要使用的main原型(prototype),然后您可以获取参数计数和参数本身。

例如,以下 C 程序打印出其所有参数,包括代表可执行文件的参数:

#include <stdio.h>
int main (int argc, char *argv[]) {
for (int i = 0; i < argc; i++)
printf ("argv[%d] = '%s'\n", i, argv[i]);
return 0;
}

如果你运行它:

./myprog three point one four one five nine

您将看到输出:

argv[0] = './myprog'
argv[1] = 'three'
argv[2] = 'point'
argv[3] = 'one'
argv[4] = 'four'
argv[5] = 'one'
argv[6] = 'five'
argv[7] = 'nine'
<小时/>

另一种选择是从程序内输入它们,为此,您可以使用安全输入功能,例如所示的here .

安全输入函数通常会使用fgets()来确保不会发生缓冲区溢出。上面链接的函数具有各种其他方便的功能,例如文件结尾检测、处理太长的行(检测和纠正)和提示。

关于c - 如何将用户输入的名称作为参数传递给下面给出的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23774898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com