16進数から16進数のコンバーターを作成しようとしています。私が今やっているようにバイナリを変換する正しい方向に行くのか、より直接的な変換方法があるのか分かりません。変換の数学や、16進数から16進数へのコード化に関する提案は非常に役に立ちます。逆に「エラー:void式の無効な使用」とは何ですか?
、私はエラー(更新されたコードから新しいもの)を受信されています:
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;
}
最終編集:
は、ここで(更新)私のコードで私は自分のコード内のエラーを発見しました。すべてのフィードバックのためにみんなありがとう!
関数呼び出しの結果に代入することはできません。関数が何も返さない場合( 'void')は二重に代入することはできません。関数がポインタを返す場合は、ポインタを使用して書き込むこともできますが、やっていることはあまり意味がありません。割り当てのLHSとRHSを単に逆にするだけでは役に立ちません。 'RevHex'は変更可能な値ではありません。あなたは何をやっているのか考え直す必要があります。たぶんReVerse(入力)?あるいは、あなたはその機能でもやるべきことがあります。 –
(void)関数に(char配列)の値を代入しようとしているようです。 – zx485
'string'とは何ですか? – AnT