我使用数字(int,float,double,long,unsigned),但是当我将其他字符放入控制台时(例如^[[A
或*
)。因此,我的程序崩溃了
如何保护我的程序免受此错误输入?
注意:我知道一些库函数,即isdigit
或isallnum
,但它们没有那么多帮助
答案 0 :(得分:1)
在C语言和C ++中执行此操作的方法是将所有输入读取为字符串,然后解析字符串。
这就是为什么你不应该将scanf(“%d”)或cin>>整数用于除调试/学生/爱好者程序以外的任何其他目的的原因之一。
答案 1 :(得分:0)
在C ++中,可以通过字符串流过滤数据来实现这一点。讨论了如何执行此操作at Stanford's introductory C++ course site,并在第19页上提供了读取整数的完整代码。本章的其余部分对于如何在C ++中执行I / O也是一个很好的资源,也可能是是有用的。