C++没有定义任何的输入和输出语句,而是使用了 标准库来提供IO机制---iostream;

标准库iostream定义了4种不同的IO对象:

  1. cin:     标准输入对象:instream类型的对象;
  2. cout:  标准输出对象:outstream类型的对象;
  3. cerr:   标准错误输出对象:outstream类型的对象,用于输出错误和警告信息
  4. clog:  日志信息输出对象:outstream类型的对象,用于输出程序运行的一般信息

知识点:

1. 头文件

头文件中包含一些函数的接口,需要使用include可以告诉编译器想要使用那些函数库,导入的方式如下所示。

<>号中包含的是头文件的名字。

#include <iostream>

2. 向流中写入数据

在C++中,一个表达式的产生往往由多个对象和运算符组成。这里的需要使用<<和>>运算符。

<<运算符需要接受两个对象: 左侧是outstream对象,右侧是输出的字符串

这样就可以把要写的字符放入流对象里面了。既然如此,我们也是可以是可以嵌套的:


2.1 解析 endl

endl的意思就是end line, 这是一个被称为操纵符的特殊值,执行endl的效果是:

1. 结束当前行,并且换行

2.将与设备关联的缓冲区中的内容刷到设备中 。缓冲刷新操作是可以保证到目前为止所有的输出都真正的写到了输出流中,而不是停留缓冲区里面;

在日常操作中,我们应该在每次打印输出的时候加上endl,否则可能会因为缓冲区已经满了出现程序崩溃

2.2 解析std

细心的同学会发现每次使用cin和cout的时候都需要写成 std::cin或者std::cout, 这是因为cin,cout是定义在std的命名空间里面的。

通过名命空间使用标准怒的时候需要显示的写出来自哪个名命空间,如下:

  1 #include <iostream>
2
3 int main()
4 {
5 std::cout << "Hello, World!" << std::endl;
6 }

当然也可以,使用using 一次性的声明:

  1 #include <iostream>
2 using std::cout;
3 using std::endl;
4
5 int main()
6 {
7 cout << "Hello, World!" << endl;
8 return 0;
9 }
10

3. 使用输入流

在标准库中输出流的对象有cout,cerr,clog,而输入流的对象只有cin

cin是可以从设备读入到内存的输入流对象。

  1 #include <iostream>
2 using std::cout;
3 using std::endl;
4 using std::cin;
5
6 int main()
7 {
8 cout << "Hello, World!" << endl;
9 cout << "读取数量不定的数字,求和"<<endl;
10
11 int sum=0,value=0;
12 while(cin>>value)
13 {
14 sum+=value;
15 cout << "读取数字 " << value << endl;
16 }
17
18 cout << "sum is "<< sum << endl;
19 return 0;
20 }

C++ Primer: 1. 初识输入和输出的更多相关文章

  1. 《C++ Primer Plus》第17章 输入、输出和文件 学习笔记

    流是进出程序的字节流.缓冲区是内存中的临时存储区域,是程序与文件或其他I/O设备之间的桥梁.信息在缓冲区和文件之间传输时,将使用设备(如磁盘驱动器)处理效率最高的尺寸以大块数据的方式进行传输.信息在缓 ...

  2. C++ primer plus读书笔记——第17章 输入、输出和文件

    第17章 输入.输出和文件 1. 对键盘进行输入缓冲可以让用户在将输入传输给程序之前返回并更正.C++程序通常在用户按下回车键时刷新输入缓冲区. 2. 一些I/O类 streambuf类为缓冲区提供了 ...

  3. c语言学习笔记第四章——字符串和格式化输入、输出

    B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...

  4. 了解一下C++输入和输出的概念

    我们经常用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.除了以终端为对象进行输入和输出外,还经常 ...

  5. [总结] I/O输入,输出

    I/O输入,输出第一:先判断到底是输入还是输出,站在程序的立场第二:判断是传递字节,还是字符,决定管道粗细,字节流是最基本的数据输出管道.字符类型管道专门用来传送文本数据.Java流的四大父类:1.字 ...

  6. C#语言基础— 输入与输出

    C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...

  7. Shell编程基础教程3--Shell输入与输出

    3.Shell输入与输出    3.1.echo        echo命令可以显示文本行或变量,或者把字符串输出到文件        echo [option] string             ...

  8. 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出

    [源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...

  9. 输入和输出的总结(c语言)

    c语言中有多种的输入和输出方式,下面就简单总结一下: 一.输入的三种方式 (1)scanf scanf 函数可以在变量中使用,也可以在数组中使用,当然指针上也能用到,是一个很好的输入函数.scanf是 ...

随机推荐

  1. Protocol Buffers 开发者指南

    欢迎来到 protocol buffers 的开发者指南.protocol buffers 是一个语言中立,平台中立针对通讯协议,数据存储和其他领域中对结构化数据进行序列化的扩展方法. 本文档主要针对 ...

  2. poj 2976 Dropping tests 二分搜索+精度处理

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8349   Accepted: 2919 De ...

  3. ABP core2.2错误笔记,持续更新

    注:以下问题全部基于版本 © 2019 MLCDZ. Version 4.3.0.0 [20190830]  .net core 的版本为2.2 1.System.InvalidOperationEx ...

  4. qt 程序发布

    Qt 程序发布步骤: 注意5.5 以后不再支持 WinXP 1) dll 抽取工具 windeployqt.exe 2) Windows脚本 实例: D:\Qt\Qt5.5.0\5.5\mingw49 ...

  5. BZOJ3875--骑士游戏(SPFA处理带后效性的动态规划)

    3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 181  Solved: 91[Submit][Status] ...

  6. python中super().__init__和类名.__init__的区别

    super().__init__相对于类名.__init__,在单继承上用法基本无差 但在多继承上有区别,super方法能保证每个父类的方法只会执行一次,而使用类名的方法会导致方法被执行多次 多继承时 ...

  7. 如何把java项目打包成war包

    用Eclipse手动打包 右击工程名 选择Export… 选择Web → WAR file 点击Browse,选择导出路径 然后war包就被导出来啦~是不是很简单呢 利用Maven的package命令 ...

  8. 20175215 2018-2019-2 第三周java课程学习总结

    第三周 一.使用JDB调试java代码(主要内容为断点) 以下文字内容转自使用JDB调试java程序,图片则为自己的截图 我们提倡在Linux命令行下学习Java编程.学习时在Ubuntu Bash中 ...

  9. 第八周学习总结&实验报告(6)

    实验六 异常 一.实验目的: (1)理解异常的基本概念: (2)掌握异常处理方法及熟悉常见异常的捕获方法. 二.实验要求: (1)练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使 ...

  10. vue.js父子组件通信动态绑定

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...