• c/c++ 输入输出技巧


    C:

    小数的四舍五入问题

    小数用 %.xf 输出的话 是会自动四舍五入的

    比如说

        double e = 2.718, c = 3.141;
        printf("%.2lf
    ", e);
        printf("%.2lf
    ", c);
        printf("%.2lf
    ", (int)(e * 100) / 100.0);
        printf("%.2lf
    ", (int)(c * 100) / 100.0);

    运行结果
    这里写图片描述

    也就是说 如果要求 不要让它进位 像整数除法一样,那么就要类似于那样的操作

    如果要保留任意 从键盘输入的N位小数输出一个数字 那怎么办呢

    printf("%.*lf
    ",c,d);   // c 表示保留的小数位数,它替代的是*的位置

    对齐问题:

    printf("%-5d
    %5d", a, b); //左对齐 无负号  右对齐

    填充问题

    printf("%05d
    ", a); // 如果输出的位数不够五位  自动用0补齐 或者还可以用空格补齐  好像不能填充其他符号吧,,C语言

    读入问题

    scanf("%1d", &a); // 这样就会只读进来一位数字 

    读入字符问题

        printf(" %c", &c); // 这样就可以防止读入空格 因为%c 前面的空格可以吸收空格和空行 就不用再打 getchar()

    按格式读入问题

    比如说有的题目的input 要求是 (a, b)

    但实际上 我们只需要 读入a 和 b 就可以了

    scanf("(%d,%d)", &a, &b); // 只要按照它的格式 来就可以了 就像前面的空格可以吸收空格和空行一样

    C++

    保留小数问题

        double e = 2.718, c = 3.141;
        cout << fixed;    // 表示按照小数形式输出小数 默认是按照科学计数法输出小数
        cout.precision(2);  // 表示输出的小数保留几位
        cout << e << " " << c << endl;

    如果要按格式输出 比如左对齐 右对齐

        double e = 2.718, c = 3.141; 
        cout << setw (20);    // 宽度
        cout << left << e << endl;    // 左对齐
        cout << right << e << endl;   // 右对齐

    填充问题

        double e = 2.718, c = 3.141;
        cout.fill('*');    // 填充'*'  实际上 ' ' 里面是随便填的 不像 c 里面 只能填充0 和 空字符
        cout << left << setw(20) << e << endl;  // 表明 左对齐 宽度20
        cout << right << setw(20) << e << endl;  // 表明 右对齐 宽度20
  • 相关阅读:
    认识dojo
    CommonJS规范
    点滴
    快速排序
    npm常用命令
    http详解
    js经验点滴js apply/call/caller/callee/bind使用方法与区别分析
    给string添加新的函数
    大马隐藏锁定研究
    一键购买
  • 原文地址:https://www.cnblogs.com/Dup4/p/9433065.html
Copyright © 2020-2023  润新知