我正在尝试创建一个十六进制到 Base64 转换器。我不知道我是否像我现在尝试那样朝着正确的方向转换二进制文件,或者是否有更直接的转换方法。任何有关转换数学或如何将十六进制编码为 Base64 的建议都会非常有帮助。
相反,我收到了错误(更新代码后出现的新错误):
hexto64.c: In function ‘main’:
hexto64.c:21:17: error: lvalue required as left operand of assignment
ReVerse(input) = RevHex;
^
如果有人可以帮助解释这个错误的含义以及如何修复 会有很大帮助!预先感谢您。
编辑:感谢评论中的少数人,我现在明白了这个错误。
这是我的代码(已更新):
#include <stdio.h>
#include <math.h>
#include <string.h>
char ReVerse(const char *str)
{
if (*str != '\0')
ReVerse((str + 1));
printf("%c", *str);
}
int main()
{
char RevHex;
char input[4096] = {0};
printf("Enter Hexadecimal: ");
scanf("%s", input);
RevHex = ReVerse(input);
printf("\n");
return 0;
}
最后编辑:我在代码中发现了错误。谢谢大家的反馈!
最佳答案
您尝试使用函数 ReVerse()
的返回值,但该函数返回 void
。它是“无”,所以你不能将“无”分配给某些东西。在这里,您尝试将数组 RevHex
设置为“nothing”。这没有道理。
关于c - "error : invalid use of void expression"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41711034/