由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 在C里面怎么验证一个input数字是不是超过int的范围?
相关主题
C++ string to int ProblemC#处理XML的问题
C, how is a string cast into a int?问个C++的String问题
求助,这样从c++输入窗口读入一连串的单词或数字呢?c++ string 一问,
C++如何输入的一个小问题C中的精度问题
java里run curl system command的问题STL map变量的实际memory usage估算
奇怪的问题:关于一个简单的malloc()小程序 (转载)什么是 multi-byte string?
关于buffer overflowC++ 屏幕输入问题
[合集] 【求助】如何将c string中的string转换成int?谢谢分享:Go语言黑魔法(内存)
相关话题的讨论汇总
话题: int话题: string话题: 范围话题: 输入话题: 数字
进入Programming版参与讨论
1 (共1页)
g****p
发帖数: 94
1
写一个程序要求用户输入一个数字,存成int
如果int长度是32bit的话,怎么知道用户是不是输入了一个大于32bit范围的数字呢?
多谢!
b******a
发帖数: 215
2
cast成double,判断是否大于2**31-1或者小于-2**31?

【在 g****p 的大作中提到】
: 写一个程序要求用户输入一个数字,存成int
: 如果int长度是32bit的话,怎么知道用户是不是输入了一个大于32bit范围的数字呢?
: 多谢!

g****p
发帖数: 94
3
那如果比那还大怎么办?

【在 b******a 的大作中提到】
: cast成double,判断是否大于2**31-1或者小于-2**31?
k****f
发帖数: 3794
4
那么大的数,自己数数位数不就知道了

【在 g****p 的大作中提到】
: 那如果比那还大怎么办?
g****p
发帖数: 94
5
不是我输入,控制不了啊

【在 k****f 的大作中提到】
: 那么大的数,自己数数位数不就知道了
b******a
发帖数: 215
6
如果不带指数输入的话, double的范围大约是+/–1.7E308(64bit),你想想能输入这
么多数字
吗?
int的话,如果不带指数输入的话,还有可以能超出范围,double的话基本上是不可能。
如果是带指数输入的话,检查指数的范围先。

【在 g****p 的大作中提到】
: 不是我输入,控制不了啊
k****f
发帖数: 3794
7
你控制不了?你不是可以读取么?按照字符读入?还是其他方式?

【在 g****p 的大作中提到】
: 不是我输入,控制不了啊
s****u
发帖数: 118
8
no non(ah-hoc) method as far as I know

【在 g****p 的大作中提到】
: 写一个程序要求用户输入一个数字,存成int
: 如果int长度是32bit的话,怎么知道用户是不是输入了一个大于32bit范围的数字呢?
: 多谢!

P********e
发帖数: 2610
9
input -> string
checking length ?
string -> int?

【在 g****p 的大作中提到】
: 写一个程序要求用户输入一个数字,存成int
: 如果int长度是32bit的话,怎么知道用户是不是输入了一个大于32bit范围的数字呢?
: 多谢!

b******a
发帖数: 215
10
2147483647和3147483647换成string,是不是一样的位数?
但是后面那个数已经超出32bit int的范围了.

【在 P********e 的大作中提到】
: input -> string
: checking length ?
: string -> int?

相关主题
奇怪的问题:关于一个简单的malloc()小程序 (转载)C#处理XML的问题
关于buffer overflow问个C++的String问题
[合集] 【求助】如何将c string中的string转换成int?谢谢c++ string 一问,
进入Programming版参与讨论
c****e
发帖数: 1453
11
读进来, 自己转换, 超过2^32就停下来.
O******e
发帖数: 734
12
Then either use an eight-byte integer or reject the value and
request a new value or terminate program.

【在 g****p 的大作中提到】
: 那如果比那还大怎么办?
T********r
发帖数: 6210
13
write your own atoi, period.
P********e
发帖数: 2610
14
ft

到这里,就自己定义,自己的函数了
后面当然不可以用系统的atoi,或者其他什么的

【在 b******a 的大作中提到】
: 2147483647和3147483647换成string,是不是一样的位数?
: 但是后面那个数已经超出32bit int的范围了.

c********x
发帖数: 84
15
that is easy,
1. you convert the string to int,
2, you convert the int back to a string,
3, compare these two strings, if they are the same, then no overflow,
if they are not the same, then....
1 (共1页)
进入Programming版参与讨论
相关主题
分享:Go语言黑魔法(内存)java里run curl system command的问题
请教如何修正这个C程序的bug。奇怪的问题:关于一个简单的malloc()小程序 (转载)
store "" in c string关于buffer overflow
C++ string类输入数据的问题[合集] 【求助】如何将c string中的string转换成int?谢谢
C++ string to int ProblemC#处理XML的问题
C, how is a string cast into a int?问个C++的String问题
求助,这样从c++输入窗口读入一连串的单词或数字呢?c++ string 一问,
C++如何输入的一个小问题C中的精度问题
相关话题的讨论汇总
话题: int话题: string话题: 范围话题: 输入话题: 数字