信奥竞赛

系列

剑指信奥 | C++ 之输入输出

剑指信奥 | C++ 之输入输出

数据流

在 C++ 中,输入和输出的内容都是以数据流的形式存在的,我们往往以程序为参照物,把数据传给程序叫做输入,程序生成的数据叫做输出。

而程序是运行在计算机的 内存 RAM 之中,内存与计算机的 中央处理器 CPU 交互配合,最终完成了程序的整个执行过程。

数据流

由上图可见,数据的输入与输出可以由多种不同的设备来完成,对于我们最常用的有四种:

  1. 键盘输入
  2. 屏幕输出
  3. 文件输入
  4. 文件输出

在这一节课,我们讲的内容是键盘输入与屏幕输出,文件输入与文件输出是我们后续课的内容。

输出

在 C++ 中,要实现输入输出操作,先做的一件事就是引入 iostream 类库,这句话我们几乎每次都写在代码的第一行:

#include <iostream>

而输出操作,我们也并不陌生:

#include <iostream>

using namespace std;

int main() {
cout << "数据输出到显示器";
}

我们发现,在 C++ 语言中,于输出而言,使用的是 cout 对象和 << 输出运算符。

需要注意的是,cout 输出的内容是不换行的,如果需要在输出内容后添加一个空行,可以使用 \nendl 这两种方式:

#include <iostream>

using namespace std;

int main() {
cout << "第一种换行输出\n";
cout << "第二种换行输出" << endl;
cout << "无换行输出 1";
cout << "无换行输出 2";
}

/*
output:
第一种换行输出
第二种换行输出
无换行输出 1无换行输出 2
*/

注意观察输出的结果,体会一下有换行和无换行输出的区别。

输入

输入的数据流向正好与输出相反,是数据从外部进入了内存,我们使用 cin 对象配合 >> 运算符实现:

#include <iostream>

using namespace std;

int main() {
cout << "请输入你的名字:" << endl;

string name;
cin >> name; // 使用 name 变量接收用户的输入

cout << "你的名字是:" << name << endl;
}

/*
output:
请输入你的名字:
Tom
你的名字是:Tom
*/

I/O 的应用

下面,我们一道简单的题目练习下数据的输入与输出。

题目

题目描述

接收用户从键盘输入的 n 个数,输出这 n 个数的平均数。

输入

第一行为数字的个数 n 第 2 行起,每一行是 n 个数中的一个。

输出

这 n 个数的平均数。

样例输入

3
290
230
280

样例输出

266

数据范围限制

0 < n < 100

这 n 个数的和可以被 n 整除

题目就是这样,这道题可以使用循环语句来实现,C++ 的循环与我们在 C 语言中学过的循环是完全一样的,如果你忘记了,可以参看:

剑指信奥 | C 语言之不知疲倦的小机器

祝你成功!