我想从stdin读取一个int,但我想验证用户是否超过了int max值.我该怎么做?
int n;
scanf("%d", &n);
Run Code Online (Sandbox Code Playgroud)
scanf读取十进制输入并存储在int中,导致溢出.我该如何检查并避免这种情况?
AnT*_*AnT 13
将数字的字符串表示形式转换为实际值并监视溢出的唯一方法是使用strto..group中的函数.在您的情况下,您需要读取数字的字符串表示,然后使用strtol函数转换它.
请注意建议使用atoi或sscanf执行最终转换的响应.这些功能都不能防止溢出.
Mar*_*ett -1
将其读入字符串并检查长度,然后对字符串调用atol()or将其转换为 int。sscanf()