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是进程的退出!

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/yskn/p/9014386.html
Copyright © 2011-2022 走看看