You Know Nothing
  • 主页
  • 分类
  • 标签
  • 归档

C++ Primer 第一章 开始

  • g++ -std=c++14 -Wall -o test test.cpp
  • iostream cin cout cerr clog
  • <<运算符返回其左侧的运算对象
  • 写入endl的效果是结束当前行,并将与设备关联的缓冲区中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入到输出流中,而不是仅停留在内存中等待写入流
  • 小心程序崩溃,输出可能还留在缓冲区的情况,利用endl
  • 标准库定义的所有名字都在命名空间std中
  • 当我们使用一个istream对象作为条件时,其效果是检测流的状态。流有效,即流未遇到错误,那么检测成功。当遇到文件结束符(end of file),或遇到一个无效输入时,istream对象的状态会变为无效。无效的istream对象会使条件为假
  • 文件结束符:Windows 先Ctrl + Z,后Enter 或 Return;UNIX:Ctrl +D
  • 标准库文件通常不带后缀。编译器一般不关心头文件名的形式,但有的IDE对此有特定要求
  • 头文件包含:标准库头文件 <> 非标准库头文件 ""
  • 文件重定向:从文件读入\<infile,输出到文件>outfile
  • cerr(无缓冲标准错误) 没有缓冲,发送给它的内容立即被输出
  • clog(缓冲标准错误) 有缓冲,缓冲区满时输出
  • cout标准输出
  • cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否满了,都立即输出流中所有数据,然后插入一个换行符
  • cerr流对象是标准错误流,指定为和显示器关联,和cout作用差不多,有点不同就是cout通常是传到显示器输出,但可以被重定向输出到文件,而cerr流中的信息只能在显示器输出
  • clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出
  • 对于为什么有cerr和clog?比如,你的程序遇到调用栈用完了的威胁(无限,没有出口的递归。你说,你到什么地方借内存,存放你的错误信息?所以有了cerr。其目的,就是在你最需要它的紧急情况下,还能得到输出功能的支持
  • 缓冲区的目的,就是减少刷屏的次数——比如,你的程序输出圣经中的一篇文章。不带缓冲的话,就会每写一个字母,就输出一个字母,然后刷屏。有了缓冲,你将看到若干句子“同时”就出现在了屏幕上(由内存翻新到显存,然后刷新屏幕)

RELATED

  • C++ 中的类型转换
  • C++ Primer 第十七章 标准库特殊设施
  • C++ Primer 第十六章 模板与泛型编程
  • C++ Primer 第十五章 面向对象程序设计
  • C++ Primer 第十四章 重载运算与类型转换

OLDER

  • Python 教程
  • HTML 入门
  • X3DOM 图像和视频纹理
  • Python 100 days
  • X3DOM,HTML,CSS 和 JavaScript

NEWER

  • 利用 Mac stat 添加文件创建时间、最后修改时间
  • C++ Primer 第二章 变量和基本类型
  • C++ Primer 第三章 字符串、向量和数组
  • C++ Primer 第四章 表达式
  • CSS 入门

发布日期

2018-10-05 23:11:35

最后更新

2018-10-07 10:48:26

分类

C++

标签

  • C++ 18
  • Powered by Pelican. Theme: Elegant by Talha Mansoor