【编程基础】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 条评论
登录 后参与评论

相关文章

来自专栏维C果糖

史上最简单的 MySQL 教程(十六)「列属性 之 唯一键」

唯一键:每张表往往有多个字段需要具有唯一性,数据不能重复,但是在每张表中,只能有一个主键,因此唯一键就是用来解决表中多个字段需要具有唯一性的问题。

3285
来自专栏陈树义

从 HelloWorld 看 Java 字节码文件结构

很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么。今天就让我们从一个最简单的 Hello World 开始看一看 J...

3806
来自专栏程序猿

Mysql_基础

一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例...

3437
来自专栏老九学堂

稳准狠!最全讲解!初学者必看的C语言字符串知识

字符数组和普通数组一样,也是通过下标引用各个元素。 【示例】输出字符数组中的元素。

691
来自专栏人工智能LeadAI

Tensorflow教程: tf.Variable() 和tf.get_variable()

1、使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错

833
来自专栏流媒体

C++类型转换

允许将任何指针类型转换为其它的指针类型;听起来很强大,但是也很不靠谱。它主要用于将一种数据类型从一种类型转换为另一种类型。它可以将一个指针转换成一个整数,也可以...

592
来自专栏Coding迪斯尼

自制monkey语言编译器:符号系统与代码执行

662
来自专栏木子昭的博客

<导图>Mysql入门基础语法及示例

数据库操作 查看所有数据库 show database; 创建数据库 语法 create database 数据库名 charset=utf8; 示例 ...

2819
来自专栏我的博客

Zend_Db_Adapter使用详情

Zend_Db_Adapter是zendfrmaeword的数据库抽象层api. 基于pdo, 你可以使用 Zend_Db_Adapter 连接和处理多种 数据...

3444
来自专栏xcywt

学习SQLite之路(二)

  下面就是真正关于数据库的一些知识了: 20160614更新  参考: http://www.runoob.com/sqlite/sqlite-tutoria...

1787

扫码关注云+社区