【编程基础】C++ Primer快速学习之二:输入与输出

什么是输入输出,即Input-Output,缩写是很装B的IO?请看经典民间解释:

C++语言的输入输出是指信息从外部输入设备(如键盘、磁盘等)向计算机内部(内存)输入(即Input)和从内存向外部输出设备(显示器、磁盘)输出(即Output)的过程。这种输入输出过程被形象地比喻为“stream--流”。

C++ 并没有直接定义进行输入或输出(IO)的任何语句,这种功能是由标准库提供的。然而,对许多应用,编程者只需要了解一些基本概念和操作。

标准库定义了 4 个 IO 对象。处理输入时使用 istream 类型对象。这个对象也称为标准输入。处理输出时使用ostream 类型对象,这个对象也称为标准输出。

到目前为止,我们已经明白如何编译与执行简单的程序。我们先来看应如何把两数相加。我们可以使 用 IO 库来扩充 main 程序,要求用户给出两个数,然后输出它们的和:

#include <iostream>

int main() {

std::cout << "Enter two numbers:" << std::endl;

int v1, v2;

std::cin >> v1 >> v2;

std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;

return 0;

}

程序首先在用户屏幕上显示提示语: Enter two numbers:

然后程序等待用户输入。如果用户输入 3 7

跟着一个换行符,则程序产生下面的输出:

The sum of 3 and 7 is 10

程序的第一行: #include <iostream>

告诉编译器要使用 iostream 库。

写入到流

main 函数体中第一条语句执行了一个表达式。C++ 中,一个表达式由一个 或几个操作数和通常是一个操作符组成。该语句的表达式使用输出操作符(<< 操 作符),在标准输出上输出提示语:

std::cout << "Enter two numbers:" << std::endl;

这个语句用了两次输出操作符。每个输出操作符实例都接受两个操作数:左 操作数必须是 ostream 对象;右操作数是要输出的值。C++ 中,每个表达式都会产生一个结果,通常是将操作符作用到其操作数所 产生的值。当操作符是输出操作符时,结果是左操作数的值。也就是说,输出操 作返回的值是输出流本身。

endl 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效 果。

读入流

在输出提示语后,将读入用户输入的数据。先定义两个名为 v1 和 v2 的 变 量来保存输入:

int v1, v2;

下一条语句读取输入:

std::cin >> v1 >> v2;

输入操作符(>> 操作符)行为与输出操作符相似。它接受一个 istream 对 象作为其左操作数,接受一个对象作为其右操作数,它从 istream 操作数读取 数据并保存到右操作数中。

剩下的就是要输出结果: v1 + v2

std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;

请读者自己分析。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-06-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏漏斗社区

听说,这个是CTF中最重要的问题······

0x00 序列化和反序列化 简单的理解:序列化就是使用serialize()将对象的用字符串的方式进行表示,反序列化是使用unserialize()将序列化的字...

3474
来自专栏liulun

nim的引用和指针

nim语言的引用和其他语言的指针有点相似 可以提供一种“多对一”的关系 这就意味着不同的引用可以指向同一个内存位置 nim区分可被追踪的引用和不可被追踪的引用 ...

2125
来自专栏Crossin的编程教室

【Python 第67课】函数的参数传递(1)

本篇面向读者:有一点点 Python 基础 关键字:函数,参数,默认值 先说下上次课最后留的那题,我自己的解法: print ';'.join([str(i) ...

2685
来自专栏偏前端工程师的驿站

Javascript Prototypes之旅(A Plain English Guide to JavaScript Prototypes译文)

  当我第一次学习Javascript的对象模型时,我的反应时困惑。因为这是我第一次接触基于原型的语言,所以我完完全全被原型弄得糊里糊涂(译者语:在看这篇文章前...

1829
来自专栏菜鸟致敬

一分钟带你读懂Python中的三类特殊方法

在Python中有着三类特殊方法:静态方法、类方法以及抽象方法。今天我们来谈谈其中的这三类特殊方法。

492
来自专栏python3

python 列表(List)

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

911
来自专栏听雨堂

代码页

  最近写一个网络程序时,碰到字符串和字节数组之间的转换问题,开始时还比较简单,字符串都是标准的Ascll编码,处理起来比较简单:   字符串转字节数组 by...

1869
来自专栏C/C++基础

C/C++ const

const是C语言的关键字,经C++扩充,功能变得强大,用法复杂。const用于定义一个常变量(只读变量)。当const与指针、引用、函数等结合起来使用时,情况...

971
来自专栏Vamei实验室

Python标准库13 循环器 (itertools)

在循环对象和函数对象中,我们了解了循环器(iterator)的功能。循环器是对象的容器,包含有多个对象。通过调用循环器的next()方法 (__next__()...

1828
来自专栏程序手艺人

C++之对象的销毁

3538

扫码关注云+社区