我在一些书中找到了这段代码:
enter code here
int main (int argc, char *argv[])
{
FILE *in, *out;
char *key;
int byte;
if (argc !=4) {
printf ("Usage: xorer <key> <input_file> <output_file>\n");
return 1;
}
key = argv[1];
if ((in = fopen(argv[2], "rb")) != NULL) {
if ((out = fopen(argv[3], "wb")) != NULL) {
while ((byte = getc(in)) != EOF)
{
if (!*key) key = argv[1];
byte^= *(key++);
putc(byte,out);
}
fclose(out); }
fclose(in); }
return 0;
}
此代码必须做下一件事(使用XOR操作的简单加密):
input = ]VTYJQC]aGC_PDJ[{RJ[EEMLA //encrypted key
key = creature_creautre_creature // string for crypting
--------------------------------
Output >$18>$18>$18>$18>$18>$18>$ // ASCII symbols for XOR crypting
但是代码什么都不做(编译没有错误)!我在代码目录中创建了input.data,input.in文件。它没有工作。请问,input_file如何进行和output_file?
答案 0 :(得分:0)
如果您正确编译了代码,那么运行不带参数的代码将打印使用信息,这也可以在源代码本身中找到:
Usage: xorer <key> <input_file> <output_file>\n
所以,如果你想加密(解密)名为input.txt的文件,在当前目录中找到,使用密钥&#34; ABC&#34;并将输出(加密/解密数据)写入文件output.txt,您将使用该程序如下:
xorer ABC input.txt output.txt
您将在当前目录中找到加密(解密)文件output.txt。
这应该回答您关于为程序提供输入和输出的具体问题。如果您有其他相关问题,请告诉我们。