Essential C++第二章练习(又一次干货+注意事项的总结!)(1)

本文介绍了C++编程中的一些常见错误和注意事项,包括误用分隔符,自定义函数中类型转换的陷阱,cin的类型检查,以及如何处理cin输入不匹配的情况。特别提到了在打印Fibonacci数列时遇到的排版问题,通过添加括号解决了格式混乱和警告。此外,还讨论了有符号和无符号整型数比较的警告,以及在处理vector对象时可能出现的负数大小问题,强调了异常处理和用户输入验证的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. ";“别写成了”:",这是个隐晦的错误,你必须足够眼尖才能查明,所以在写程序的时候留意!不要总犯低级错误!
  2. 请看这个bool类型的功能为判断的自定义函数,有需要注意的东西
bool iscontinue()
{
   
   
    int choose;
    //注意这里定义成int变量,
    //因为如果变量是bool类型,用户如果输入了非0的数值,
    //不管正数负数小数,都会认为choose是true值。
    cout<<"Do you want to enter another position?
        <<Yes,enter 1 or No,enter 0\n";
    cin>>choose;
    if(choose==1)
    {
   
   
        return true;
    }
    else if(choose==0)
    {
   
   
        return false;
    }
    else{
   
   
        exit(-1);//输入非规定值后程序异常结束
    }
}
  • 注意这里定义成int变量,因为如果变量是bool类型,用户如果输入了非0的数值,除0.几或1.几外(因为这范围的数直接由于类型间精度缩放,会被归为0或1,也就是自动转化成了bool型,也就不会走else里了。)不管正数负数小数,都会认为choose是true值。
  • 是的,由于由精度缩放的问题,类型自动转换里没有四舍五入,实型赋值给浮点型,多出来的小数全部扔掉!!!
  • 此外,cin也会帮你判断输入的值是不是符合变量的类型,如果不符合,程序立马结束(仅限于数值类型和非数值类型(如char型)的符合判断,整型实型之间会被默认为符合!
cout<<"The Fibonacci Sequence for "<<pos<<" positions:\n\t";
    switch(pos)
    {
   
   
        default://pos没输入12的时候从defaultcase 2:cout<<"1 ";//pos==2,这里必须有空格否则数字会“粘”在一起
        case 1:cout<<"1 ";break;//pos==1,这里必须有空格否则数字会“粘”在一起
    }
    int elem;
    int n_2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值