我需要编程方面的帮助。程序必须接受一个最终会变成 unsigned long 的字符串。但这里有一个问题,必须有一个错误捕获器,当您输入十六进制和符号的组合时a!!!!!!
会产生错误,并且 unsigned long 变量必须能够接受和存储大于 的4294967295
输入FFFFFFFF
。我试过这个代码段:
char buffer[256];
unsigned long holder;
fgets(buffer,256,stdin);
holder = strtoul (buffer,NULL,16);
我的问题是,当我输入FFFFFFFFF
(9 F's)而不是FFFFFFFF
(8 F's)时,持有人仍然会接受4294967295
,即使它超过了。另一件事是,当我将十六进制和符号结合起来时a!!!!!
,fgets
仍然考虑十六进制 A。
你能给我一个关于如何做到这一点的想法吗?如果您知道除此代码之外的任何其他想法,请告诉我。谢谢!