我正在使用不同的输入检查我的代码。我有下一个代码:
if((scanf("%d",&n)!=1)) {
printf("Invalid number\n");
return 0;
}
如果我尝试扫描的数量超过允许的int
(例如:10000000000),则不会打印“无效数字”。我希望它打印并结束程序。该怎么办?
答案 0 :(得分:0)
读取项目的数量为1
,但由于int无法保存该值,因此它将保留除输入内容之外的其他内容。因为32位签名int(很可能是这种情况)不能保持这个数字。因此,它将包含一些垃圾值。