社区
C语言
帖子详情
c 语言long型问题
ljq8588fresh
2007-12-11 06:00:24
int main()
{
long val;
scanf("%ld",&val);
if(val > 2147483647)//2147483647是长整型的最大范围
{
printf("error!\n");
}
return 0;
}
当输入一个大于2147483647却不能报错。
该怎么样做才能使它报错呢?
...全文
476
13
打赏
收藏
c 语言long型问题
int main() { long val; scanf("%ld",&val); if(val > 2147483647)//2147483647是长整型的最大范围 { printf("error!\n"); } return 0; } 当输入一个大于2147483647却不能报错。 该怎么样做才能使它报错呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oldmanzhao
2007-12-12
打赏
举报
回复
不知道楼主想实现什么?这样做似乎没有什么意义,想判溢出?用别的方法好了。
阿呆_
2007-12-12
打赏
举报
回复
这段程序只有在unix标准的64位c/c++编译器生成才能得到你期望的结果。 因为unix标准的64位编译器的long是64位的。 而微软的64位编译器的long还是32位的。
mbmseason
2007-12-11
打赏
举报
回复
如果你想在val中保存负数就用下面的代码:
int main()
{
long val;
__int64 tmp;
long val = 0;
__int64 tmp;
scanf("%I64d", &tmp);
if(tmp & 0xFFFFFFFF00000000)
printf("error\n");
else
val = tmp & 0xFFFFFFFF;
return 0;
}
如果你根本就不想要保存负数,那就用下面的代码:
int main()
{
long val;
scanf("%ld",&val);
if(val < 0)
{
printf("error!\n");
}
return 0;
}
如果你没有64为运算支持,那只好先用scanf("%s", szTmp);来以字串方式获取输入,然后自己通过逐位计算long值,并判断是否出现溢出来检查是否超过long上限了,代码我就不写了。
xaobao
2007-12-11
打赏
举报
回复
呵呵有点意思
xx_hzbzlp
2007-12-11
打赏
举报
回复
哎...
kekedou
2007-12-11
打赏
举报
回复
呵呵 溢出了哦,但是val还是可以显示的啊,不会抱错。
ljq8588fresh
2007-12-11
打赏
举报
回复
我不应该继续下去,应该回去吃饭了。脑子成糨糊了。
xiao2003ran
2007-12-11
打赏
举报
回复
陷入悖论中。
错误犯的可爱…………
bjnova
2007-12-11
打赏
举报
回复
按%s输入,然后处理。scanf函数本身不处理这些问题。
chlaws
2007-12-11
打赏
举报
回复
输入超过2147483647,溢出了,比最大数小了
freshairfly
2007-12-11
打赏
举报
回复
已经溢出了呗,变成了负数
也就是说你的if语句永远不会满足。
用scanf来输入很难判断是否溢出,建议你采用获取字符串的方式,然后就比较容易判断是否溢出了
chlaws
2007-12-11
打赏
举报
回复
沙发
独孤过儿
2007-12-11
打赏
举报
回复
最大的数是2147483647,你想想,你输出的数字比这个还大,那它怎么保存呢?如果能比较,那就说明long还能支持更大的
数,因为你的val里面已经保存了啊
呵呵,思路没绕过来吧
C
语言
程序设计第四版何钦铭课后习题及答案.pdf
C
语言
程序设计第四版何钦铭课后习题及答案 本资源摘要信息涵盖了 C
语言
程序设计的基础知识,包括标识符、保留字、变量声明、流程控制、函数、数组、字符串等方面的知识点。 一、标识符 在 C
语言
中,用来表示...
c
语言
long
型
是什么,c
语言
long
类
型
是什么意思
c
语言
long
类
型
是什么意思?...3. 每个
long
型
占4个字节,在32位编译系统下,
long
和int占的空间是相同的。这也导致了
long
型
变量使用的越来越少了。4.
long
型
可以表示的整
型
数字范围为-2,147,483,648...
c
语言
函数前加
long
的作用,C
语言
中
long
long
型
数据怎么输出,能详细说明一下
long
与
long
long
的区别吗?...
导航:网站首页 >C
语言
中
long
long
型
数据怎么输出,能详细说明一下
long
与
long
long
的区别吗?...相关
问题
:匿名网友:C
语言
中输出
long
long
型
数据使用%lld格式输出的方法:1、
long
long
是C99标...
c程序
语言
中
long
,C
语言
long
C
语言
long
教程C
语言
long
定义详解语法
long
int varname = value;
long
varname = value; //简写参数参数描述
long
int定义
long
类
型
变量使用的类
型
。varname变量名。value可选,变量的初始值,该值不可以超过
long
...
c java
long
_C
语言
中输出
long
long
型
数据怎么输出
展开全部C
语言
中输出
long
long
型
数据使用%lld格式输出的方法:1、32313133353236313431303231363533e59b9ee7ad9431333366303761
long
long
是C99标准对整
型
类
型
做的扩展,每个
long
long
类
型
的变量占8字节,64位。...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章