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

相关文章

来自专栏osc同步分享

Timer类的schedule()方法

timer.schedule(new MyTask(),long time1,long timer2); 第一个参数,是 TimerTask 类,在包:impo...

35011
来自专栏小白的技术客栈

Python函数基础

函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包...

3585
来自专栏Java技术

Java性能优化之字符串优化处理

String对象是java中重要的数据类型,在大部分情况下我们都会用到String对象。其实在Java语言中,其设计者也对String做了大量的优化工作,这些也...

985
来自专栏HTML5学堂

switch语句以及与if的比较

HTML5学堂:JS的三大语句类型当中,有一种分支/选择性语句——switch。我们常说switch可以适当的和if配合使用,那么switch语句到底怎么书写,...

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

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

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

1899
来自专栏Crossin的编程教室

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

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

2815
来自专栏听雨堂

代码页

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

1909
来自专栏程序手艺人

C++之对象的销毁

3568
来自专栏编程

10个Python面试常问的问题

概述 Python是个非常受欢迎的编程语言,随着近些年机器学习、云计算等技术的发展,Python的职位需求越来越高。下面我收集了10个Python面试官经常问的...

2127
来自专栏小樱的经验随笔

彻底搞定C语言指针(精华版)

1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: ...

3613

扫码关注云+社区