Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42905
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-19 10:39
文章分类

全部博文(13)

文章存档

2016年(3)

2015年(5)

2014年(5)

我的朋友

分类: C/C++

2014-07-07 16:52:12

  • 输出格式对齐
   setw(size_t width)            // #include
   默认的cout 对齐方式,是左对齐,如果希望输出时,进行右对齐,可以使用这个函数
    如果要设置回原来的左对齐方式,可以用 setw(0) 来生效


点击(此处)折叠或打开

  1. cout << setw(10) << 30 <<endl;
  2. cout << setw(10) << 5 << endl;
  3. cout << sets(10) << -10 << endl;

  • 取绝对值函数

点击(此处)折叠或打开

  1. std::abs(int value);       // #include <cstdlib>
  2. std::labs(long value);    // #include
  3. std::fabs(float value);   // #include <cmath>
  4. std::fabs(double value); // #include <cmath>
  • 取商和余数
div_t  div(int a,int b);        // #include         // int
ldiv_t dit(long a,long b);    // #include         // long

点击(此处)折叠或打开

  1. int value = 93;
  2. int divisor = 17;
  3. div_t results = std::div(value, divisor);
  4. cout << "Quotient is " << result.quot << endl;
  5. cout << "Remainder is " << result.rem << endl;

  • 取随机数
    int std::rand();     // #include             返回一个 [0 , RAND_MAX-1 ] 之间的int值 ,貌似无法随机到 RAND_MAX 这个数
    std::srand(unsinged int seed);    // #include      设置一个随机种子 ,这个随机种子可以用 时间 作为参数 


  注意如果要用for循环,一次性随机出多个 随机数,那么一定要在for之前只设置 随机种子 1次,而不是在for循环内部,每次迭代都去设置 1次 随机种子

点击(此处)折叠或打开

  1. std::srand( (unsigned int) std::time(0) ); // #inlcude <ctime>

  •     浮点数 相关

点击(此处)折叠或打开

  1. // #inlcude <iomanip>
  2. float f = 1.2345f;
  3. cout << setprecision(14) << fixed << f << endl; // setprecision函数控制小数点后位数的个数 ,fixed表示用 小数形式显示
  4. cout << setprecision(5) << scientific << f << endl;    // scientific 表示用 科学计数法形式 显示

         浮点数 计算的精度问题

点击(此处)折叠或打开

  1.     float f1 = 2.1f;
  2.     float f2 = 2.09f;
  3.     float f3 = f1 - f2;
  4.     if( f3 == 0.01f )
  5.     {
  6.         // need be equal , by human calculate
  7.         cout << "Equal" << endl;
  8.     }
  9.     else
  10.     {
  11.         // but in fact , the program running else cause
  12.         cout << "Not Equal" << endl;
  13.     }
  14.     

  15.     // fabs(...)         // <cmath>
  16.     // FLT_EPSILON         // <cfloat>
  17.     // DBL_EPSILON         // <cfloat>
  18.     // LDBL_EPSILON         // <cfloat>
  19.     if( fabs(f3 - 0.01f) < FLT_EPSILON )
  20.     {
  21.         // run if code
  22.         cout << "Equal" << endl;
  23.     }
  24.     else
  25.     {
  26.         cout << "Not Equal" << endl;
  27.     }

  •  数学函数
    // #include
    abs(arg)    // 取整数的绝对值
    fabs(arg)    // 取整数/小数的绝对值
    ceil(arg)    // 取大于或等于arg的最小整数  , ceil(-2.3)        -->   -2
    floor(arg)  //  取小于或等于arg的最大整数  , floor(-2.3)     -->    -3
    exp(arg)    // 取 e^arg 幂运算
    log(arg)    // 取 arg的自然对数            log( exp(2)   )        log(e2)    -->  2

    log10(arg)    // 取以10为底,arg的对数    log10( 1000)        -->   3
    pow(arg1, arg2)    // 取 arg1为底数,arg2为幂的结果  arg1^arg2    pow(2,4)    -> 2^4  = 16
    cos(arg) sin(arg) tan(arg)    // 三角函数
    acos(arg)  asin(arg)   atan(arg)    // 反三角函数
    
    

  •     确定数值的上下限
    // #include
    

点击(此处)折叠或打开

  1. cout << "max = " << numeric_limits<int>::max() << endl;
  2. cout << "min = " << numeric_limits<int>::min() << endl;

  •     位运算
    如果要让某位设置为0 ,用 & 运算符,    mask 数中, 被设置的位为 0 ,其他位用1补全
    如果要让某位设置为1 ,用 | 运算符,        mask 数中, 被设置的位为1, 其他位用0补全
    如果要让某位设置为 取反, 用 ^ 运算符,  mask 数中,被设置的位为1, 其他位用0补全

  • 输出格式
    setfill(char ch);    // #include      #include

点击(此处)折叠或打开

  1. cout << setfill('*') << setw(5) << 123 << endl; // --> **123
    // #include     #inlclude
    dec  // 十进制数显示
    hex  // 十六进制数显示
    oct   // 八进制数显示
    left  //  左对齐
    right    // 右对齐
    fixed     // 小数点法,显示浮点数
    scientific    // 科学计数法,表示浮点数
    showpoint    // 给浮点数,显示小数点和尾部的0    // 如果float f = 2.0f ,那么没有showpoint会显示 2 , 有showpoint, 会显示2.00000
    noshowpoint    // 与 showpoint 相反, 这是默认的显示格式
    showbase        // 在八进制数前加上前导的0, 在十六进制数前加上前导的 0x 或 0X
    noshowbase    // 不显示八进制/十六进制数的 前缀, 这是默认的显示格式
    showpos         // 正数前面加 + 号
    noshowpos     // 正数前面不加 + 号,这是默认的
    uppercase      //  十六进制前用 0X而非 0x , 用A-F 而非 a-f ,科学计数法用 指数E 而非e
    nouppercase   // 与 uppercase 相反 , 这是默认的
    boolalpha        // 把bool值显示为 true / false
    noboolalpha     // 把bool值显示为 1/0 , 这是默认的
    
    setfill(char ch)    // 把填充字符设置为参数指定的字符,默认填充字符是空格
    setw(int width)    // 把字段宽度设置为参数指定的值
    setprecision(int num)    // 把浮点值的精度设置为参数指定的值,精度是指 输出中的十进制数字的个数

    字符判定
    #inlclude     // #include
    isupper(char ch)    // ch 是否是 A-Z
    islower(char ch)    // ch 是否是 a-z
    isalpha(char ch)    // 是否是 a-z or A-Z, 是否是26个英文字母
    isdigit(char ch)     // 是否是 0-9 ,数字
    isxdigit(char ch)    // 是否是16进制数表示的 0-9 , a-f ,A-F
    isalnum(char ch)   // 是否是 0-9 or a-z or A-Z
    isspace(char ch)    // 是否是空白,空白可以是 空格,换行符,回车符,换页符,水平制表符或垂直制表符    
    iscntrl(char ch)      // 是否是 控制符
    isprint(char ch)     // 是否是 可打印的 字符 ,包括 a-z,A-Z,0-9 标点符号,空格
    isgraph(char ch)    // 是否是图形字符,即除了空格以外的所有可打印的字符
    ispunct(char ch)    // 是否是标点符号,如 _ {} [] () , . ? !%$ 等等
    tolower(char ch)    // 转换成小写字母
    toupper(char ch)    // 转换成大写字母
    

阅读(1628) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~