• 输入和输出


    (1) 使用标准输入/输出

    头文件:<cstdio>

    变量约定:FILE *fin, *fout;——fin、fout分别代表输入文件和输出文件。把它们换成stdin和stdout,就是从屏幕输入和从屏幕输出。“1.5 字符串操作”也使用了同样的变量。

    1. 输出字符串或变量的值:printf("格式字符串", ……);
      或fprintf(fout, "格式字符串", ……);

    格式字符:“%”后连接一个字母。

    字符

    含义

    字符

    含义

    d

    整数[1]

    e, E

    用科学记数法表示的浮点数

    u

    无符号整数

    f

    浮点数

    o

    八进制整数

    c

    字符

    x, X

    十六进制整数(小写、大写)

    s

    字符串(字符数组)

    常见的修饰符

    Ÿ           %5d:5位数,右对齐。不足5位用空格补齐,超过5位按实际位数输出。

    Ÿ           %-5d:5位数,左对齐。不足5位用空格补齐,超过5位按实际位数输出。

    Ÿ           %05d:5位数,右对齐。不足5位用'0'补齐,超过5位按实际位数输出。

    Ÿ           %+d:无论是正数还是负数,都要把符号输出。

    Ÿ           %.2f:保留2位小数。如果小数部分超过2位就四舍五入,否则用0补全。

    1. 输入到变量

    Ÿ           读取不含空白的内容:scanf("格式字符串", &……);
    或fscanf(fin, "格式字符串", &……);
    ① 格式字符和printf基本一致。
    不要忘记“&”!printf传的是值,scanf传的是地址!
    ③ scanf和fscanf的返回值是:成功输入的变量个数。fscanf返回EOF,表示文件结束。
    ④ scanf和fscanf忽略TAB、空格、回车。遇到这些字符它们就停止读取。

    Ÿ           读取单个字符:fgetc(fin);
    首先要判断它是否为EOF(文件结束)。如果不是,就可以用强制类型转换变成char。
    读取到行末时,要注意对换行符的处理。

    Ÿ           Windows、Linux、Mac的回车字符是不同的。Linux是' ',Mac是' ',Windows下是两个字符——' '和' '。

    (2) 使用流输入/输出

    头文件:<iostream>

    1. 输入到变量:cin>>n;
    2. 输出到屏幕上:cout<<a;
      可以连续输入、输出,如cin>>n>>m;   cout<<a<<','<<b<<endl;
    3. 换行:cout<<endl;
    4. 格式化输出
      头文件:<iomanip>

    Ÿ           右对齐,长度为n,不足的部分用空格补齐
    cout.width(n);
    cout.fill(' ');             // 如果想用“0”补齐,就可以把空格换成“0”
    cout<<a;
    前两行代码,每次输出之前都要调用。

    Ÿ           输出成其他进位制数
    8:  cout<<oct<<a;
    16: cout<<hex<<a;
    其他进位制需要自己转换。

    1. 注意,数据规模很大时,流的输入输出速度会变得很慢,甚至数据还没读完就已经超时了。
      在进行输入输出之前加入这样一条语句:ios::sync_with_stdio(false);
      调用之后,用cin、cout输入输出的速度就和scanf、printf的速度一样了。


    [1] 在Windows下调试时,用“%I64d”输出long long类型的值。交卷时,由于用Linux测试,要改成“%lld

  • 相关阅读:
    地狱少女....
    火影忍者&nbsp;是时候结束了
    1942
    待查
    什么是傻瓜
    公车艳遇
    初一
    继承
    第四周学习笔记
    查找里程————mooc《面向对象程序设计——Java语言》-(浙大翁凯)第三周编程题
  • 原文地址:https://www.cnblogs.com/jjzzx/p/5102830.html
Copyright © 2020-2023  润新知