我现任教授陈述了他的教学大纲:
"永远不要使用cin >>直接读取数字变量,如int或double或float.读取字符串(C或C++)并使用atoi或atof转换为数字."
是否有一个原因?起初我认为这是为了避免失败标志,但如果你只是添加输入验证代码是不是很好"cin >> myInt"?
使用他的方法,如果他们输入"4a5"并且我做了atoi它不会仍然抛出错误?
谢谢〜
一般来说,它根本没有任何问题.这个建议似乎是错误的.
事实上,单纯依靠stoi和朋友,你失去任何控制转换过程的能力.您可能希望在某些特定于域的情况下使用这些,您希望提取特定数量的字符,然后尝试转换它们,但这取决于业务逻辑.
当然,依赖过时的代码atoi更糟糕的是,遇到许多失败案例时其未定义的行为是什么.