chq*_*lie 45 c scanf undefined-behavior
当sscanf()该scanf族或该族的另一个函数被赋予一个数字序列时,其转换值超过目标整数类型的最大值,
too*_*ite 47
从标准来看,7.21.6.2p10((f)scanf适用于整个家庭):
...如果此对象没有合适的类型,或者无法在对象中表示转换结果,则行为未定义.
看起来是与scanf家人非常谨慎的另一个原因.这些strtoXX函数具有完全定义的行为.他们返回LONG_MAX等太大的输入和设置errno == ERANGE.因此,如果您需要确切的信息,请手动标记输入并使用这些函数进行转换.另一个好处:更好的错误处理.