プログラミングの助けが必要です。プログラムは、最終的に 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!!!!!
、fgets
16 進 A が考慮されることです。
これを行う方法についてアイデアを教えてください。このコード以外のアイデアを知っている場合は、お知らせください。ありがとう!