プログラミングの助けが必要です。プログラムは、最終的に unsigned long になる文字列を受け入れる必要があります。しかし、ここにキャッチがあります.16進数と記号の組み合わせを入力するとa!!!!!!エラーが発生し、符号なしの長い変数4294967295がFFFFFFFF. 私はこのコードセグメントを試しました:
char buffer[256];
unsigned long holder;
fgets(buffer,256,stdin);
holder = strtoul (buffer,NULL,16);
私の問題は、(8 F's)のFFFFFFFFF代わりに(9 F's)を入力すると、所有者はそれ以上であってもFFFFFFFF受け入れてしまうことです。4294967295もう 1 つのことは、16 進と のような記号の両方を組み合わせるとa!!!!!、fgets16 進 A が考慮されることです。
これを行う方法についてアイデアを教えてください。このコード以外のアイデアを知っている場合は、お知らせください。ありがとう!