zoukankan      html  css  js  c++  java
  • c++ 编程小技巧

    while(cin>>ch):

    在上while循环中ch是一个字符串类型,cin>>ch位判断依据,就是每次循环时都要重新输入,当输入成功时进入循环,反之当输入失败时则不进入循环,所以这种循环一般是循环输入循环,在每次循环中都是对本次输入的数据进行处理。

    continue & break:

    两者均应用于循环,continue是跳过本次循环进行下一次循环,而break是直接跳出本个循环。

    rand()%100:

    这个语句是为了产生[0,100)的随机数的效果,通过用100取余来实现可以说很棒了。但是rand()一般是和srand函数结合使用。srand((unsigned)time(NULL)); 以这种方式创建随机种子,让rand每次创建的随机数不一样,相反如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的,从而增加随机性。

    (int)(a+0.5):

    这个语句是为了简单的实现四舍五入的效果,其中a为小数,又因为强制类型转换是一种截断所以通过+0.5从而实现简单的四舍五入的效果

    _kbhit()?_getch()?区别?

    kbhit() 在执行时,检测是否有按键按下,有按下返回键值没有按下返回0;是非阻塞函数getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数。

    #pragma warning(disable:4996):

    warning C4996: '_vsnprintf': This function or variable may be unsafe. ......(比如fopen语句报错)

    warning C4996: strcpy was declared deprecated(比如_kbhit报错)

    出现这样的警告,是因为VC2005之后的版本中认为CRT中的一组函数如果使用不当,可能会产生诸如记忆体泄露,缓冲区溢位,非法访问等安全问题。这些函数如:strcpy,strcat等。对于这些问题,VC2005建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。当然,如果执行使用老版本,非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。办法是在编译选项C / C ++ | 预处理器| 预处理器定义中,增加_CRT_SECURE_NO_DEPRECATE标记即可。另外一种解决方法:

     #pragma warning(disable:4996)//全部关掉     #pragma warning(once:4996)//只显示一个 (#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个过程的文件有效,伴随着该文件结束而消失)

    enum 在c++使用:

    1.enum可以在没有定义变量的情况下直接使用(代码如下)

    enum yang{pig,cat,dog};
    //可以直接定义枚举变量来使用常量
    yang me=cat;
    if(me==1){...};
    //也可以直接使用tongguo"::"
    if(yang::cat);

    2.为了防止不同的枚举内容重叠,我们可以在使枚举量的作用域为类,即定义 enum class .....

    3.我们可以不要枚举名字直接创建枚举,这样就和const创建的常量没有什么不同 

     

    return EXIT_FAILURE || return EXIT_SUCCESS

      

     EXIT_FAILUREC语言头文件库中定义的一个符号常量,在vc++6.0下头文件stdlib.h中定义如下: #define EXIT_FAILURE 1 .

     EXIT_FAILURE 可以作为exit()的参数来使用,表示没有成功地执行一个程序。

     EXIT_SUCCESS 作为exit()的参数来使用,表示成功地执行一个程序。

    报错函数和退出函数:

      perror()函数包含在stdio.h的报错函数,括号里面写入指定的字符串。当有错误的时候一般后面都会加上exit(1);当里面的参数为1代表着系统的异常退出,如果参数为0则为正常的退出,但是这个正常的退出和return可不一样return是函数的退出(返回);exit是进程的退出!

  • 相关阅读:
    Linux安装phpMywind
    CentOS7安装virtualbox
    MySQL3534
    DIV盒子介绍
    HTML选择器
    人脸检测
    openblas下载安装编译
    DeepLearning网络设计总结
    Linux命令替换字符串
    Y7000联想拯救者gtx1050Ti安装cuda9.0
  • 原文地址:https://www.cnblogs.com/yskn/p/9014386.html
Copyright © 2011-2022 走看看