浅谈输入输出

· · 算法·理论

Hello, World!

0 开始学C++第一天,从输入输出讲起。

cin 与 cout

我们最常见的的输入输出方式就是使用 cincoutcincout 可以输入输出几乎所有类型的变量,而且使用较为简单。

  1. 用法:

cin >>变量名;

需要添加 <iostream> 库。

#include <iostream>
using namespace std;
int main()
{
    int a;
    cin >> a;
    cout << a;
    return 0;
}
  1. 加速:

scanf 与 printf

scanfprintf 是 C 语言中的输入输出方式,总体时间比 cincout 快(当你用久了就会发现,有点时候比加速后的 cincout 还要快)

1.用法:

其中 %d 表示变量类型,n 为变量名,& 表示将数据输入进该变量的地址处。

其中 %d 表示变量类型,n 为变量名,不需要添加 &

对于各种不同的变量:

  1. %s 表示字符串。
  2. %c 表示字符。
  3. %lf 表示双精度浮点数 (double)。
  4. %d 表示有符号整型(int)。
  5. %lld 表示长整型 (long long)。根据系统不同,也可能是 %I64d
  6. %u 表示无符号整型 (unsigned int)。
  7. %llu 表示无符号长整型 (unsigned long long),也可能是 %I64u

除了类型标识符以外,还有一些控制格式的方式。许多都不常用,选取两个常用的列举如下:

  1. %1d 表示长度为 1 的整型。在读入时,即使没有空格也可以逐位读入数字。在输出时,若指定的长度大于数字的位数,就会在数字前用空格填充。若指定的长度小于数字的位数,就没有效果。
  2. %.6lf 用于输出,保留六位小数。

这两种运算符的相应地方都可以填入其他数字,例如 %.3lf 表示保留三位小数。

快读与快写

快读原理:

单个字符的读入速度要比读入数字快,因此我们以字符的形式先读入,然后通过编程再转为数字。

快读详解

板子

快读:

inline int read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
    return x*f;
}

快写:

inline void write(int a)
{
    if(a>9) write(a/10);
    putchar(a%10+'0');
}

文件读写

文件的操作步骤:

  1. 打开文件,将文件指针指向文件,决定打开文件类型;
  2. 对文件进行读、写操作(比赛中主要用到的操作,其他一些操作暂时不写);
  3. 在使用完文件后,关闭文件。

freopen 函数

函数简介

函数用于将指定输入输出流以指定方式重定向到文件,包含于头文件 stdio.h (cstdio) 中,该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。

函数主要有三种方式:读、写和附加。

命令格式

FILE freopen(const char filename, const char mode, FILE stream);

参数说明

使用方法

读入文件内容:

freopen("data.in", "r", stdin);
// data.in 就是读取的文件名,要和可执行文件放在同一目录下

输出到文件:

freopen("data.out", "w", stdout);
// data.out 就是输出文件的文件名,和可执行文件在同一目录下

关闭标准输入/输出流:

fclose(stdin);
fclose(stdout);

文件读写详解

下一篇:浅谈各种排序\to