当我编译程序并运行它时,它不打印任何内容。我相信问题暂时存在,但我不明白出了什么问题。它应该将十六进制转换为 ASCII,然后转换为加密消息。
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main(int argc, char **argv) {
int p;
//Opening a file
FILE*tp;
tp = fopen(argv[1], "r");
if(tp == NULL)
{
printf("Error opening file!\n");
return 0;
}
else
{
//Decryption code
while((p=fscanf(" %x",&p))!=EOF)
{
p=p >> 2;
p=p - 200;
printf(" %c",p);
}
}
return 1;
fclose(tp);
}
最佳答案
fscanf()
返回成功匹配和分配的输入项的数量,而不是输入项本身。另外,如上所述,您需要将文件指针传递给函数。试试这个:while(fscanf(tp, "%x", &p) != EOF)
关于C解密程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28792984/