24小时热门版块排行榜    

CyRhmU.jpeg
查看: 386  |  回复: 2

sciencejoy

新虫 (著名写手)

[交流] C++ assert语句已有2人参与

CODE:
#include <iostream>
#include <cassert>
#include <cmath>

int main(int argc, char* argv[])
{
     double a;
     std::cout << "Enter a non-negative number:\n";
     std::cin >> a;
     assert(a>=0.0);
     std::cout << "The square root of " << a;
     std::cout << "is" << sqrt(a) << "\n";
     return 0;
}

以上代码是要用户输入一个非负实数,并输出其平方根,在输出平方根之前,先判断输出的数是否是非负的。如果你输入一个负数,程序会报错
CODE:
int main(int, char **): Assertion 'a >= 0' failed

回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军


小木虫: 金币+0.5, 给个红包,谢谢回帖
实际项目中自己用if来判断并给出错误信息可能更好一些
assert更多用来debug例如
CODE:
if (__DEBUG)
{ assert(...); }

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2014-01-08 00:26:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

icearchive

银虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
1、assert是这样的,在测试代码中经常用到,如楼上所说
2、也如楼上所说,实际项目为了考虑容错性,同时程序不能因为一些错误直接崩溃,直接用这个的我相信不多
3楼2014-01-10 23:25:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sciencejoy 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见