zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    查询端口号的连接情况
    mac环境下安装python3的requests包
    Apollo配置中心介绍
    简单工厂,工厂方法,抽象工厂模式对比
    全表查询sql执行链路排查
    logstash部署及项目日志输出到ES
    【SpringMVC入门系列】篇4:SpringMVC传值方式
    【设计模式】外观模式
    【SpringMVC入门系列】篇3:@RequestMapping & @RequestHeader & @CookieValue详解与REST风格请求
    【SpringMVC入门系列】篇1:SpringMVC基本使用与执行流程
  • 原文地址:https://www.cnblogs.com/Dup4/p/9433065.html
Copyright © 2011-2022 走看看