我scanf("%llu%c", &myUnsignedLong, &checkerNewLine)用来验证一个数字>0 && <2^64,checkerNewLine如果有人试图插入一个字母 ( while (getchar() != '\n');),则用于清除缓冲区。
但是如果我尝试插入一个负数,例如-541231,scanf成功并返回 2(作为匹配的参数数)。显然存储在中的数字myUnsignedLong是2^64-541231,但这不是我的意图。
有什么简单的方法可以解决这个问题吗?非常感谢