C解密程序

标签 c encryption while-loop

当我编译程序并运行它时,它不打印任何内容。我相信问题暂时存在,但我不明白出了什么问题。它应该将十六进制转换为 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/

相关文章:

linux - 如何处理 shell 登录脚本中的错误密码?

c - C语言中如何在数字前加0进行格式化?

c - 如何确定 Linux TTY 是否正在控制进程组

java - 使用java进行RSA解密失败

c - 无法完全执行 do-while 循环

c++ - 循环无限时的输入验证

c - pthread_cond_broadcast 不起作用?

c - 使用指向结构的指针实现冒泡排序

java - 使用 BouncyCaSTLe 创建 CMS 消息时出现 FipsUnapprovedOperationError

c# - Chilkat C# Crypt2 与 .NET 框架加密