共计 1624 个字符,预计需要花费 5 分钟才能阅读完成。
本系列文章为作者浏览《C++ primer》后总结的重要知识点,对简略的根底语法和常识进行了删去,总结出容易忘记和较为细节的知识点,适宜有肯定 C 语言语法根底的同志浏览。这本书切实是太厚了,然而又像是一个宝库,心愿我精简后的知识点能够为以前浏览过该书的同志的温习带来便当,为从未浏览过该书的同志做一个浏览的疏导。
1.2 初识输入输出
iostream 库蕴含两个根底类型:istream和 ostream,示意 输出流 和输入流。
一个流就是一个 字符序列 ,是从 IO 设施读入或写入 IO 设施的。
“流”:随着工夫的推移,字符是 程序生成或耗费的。
规范库定义了 4 个 IO 对象。
1.cin:istream 类型的对象,规范输出。
2.cout:ostream 类型的对象,规范输入。
3.cerr:ostream 类型的对象,规范谬误。用来输入正告和错误信息。
4.clog:输入程序运行时的一般性信息。
#include <iostream> : 通知 编译器 咱们想要应用 iostream 库。尖括号中的名字指出了一个头文件。每个应用规范库设施的程序都必须蕴含相干头文件。#include 指令和文件的名字必须写在同一行中。通常状况下,#include 指令必须呈现在所有函数之外。
std::cout<<“Enter two numbers:”; : 给用户打印一条音讯。这个音讯是一个 字符串字面值常量。
std::cout<<endl; :endl 是一个被称为 操纵符 的非凡值。成果是 完结以后行,并将于设施关联的缓冲区中的内容刷到设施中 。缓冲刷新操作能够保障 目前为止程序产生的所有输入都真正写入输入流中,而不是仅仅停留在内存中期待写入流。
前缀 std:: 指出名字 cout 和 endl 是定义在名为 std 的 命名空间 中的。命名空间能够 帮咱们防止不经意的名字定义抵触,以及应用库中雷同名字导致的抵触。规范库定义的所有名字都在命名空间 std 中。
1.3 正文简介
正文界定符不能嵌套。(/**/)
1.4 控制流
当应用一个 istream 对象作为条件,其成果是 检测流 的状态。若流无效,即 流未遇到谬误,则检测胜利 。遇到 文件结束符 或一个 有效输出(如读入的值不是一个整数)。istream 对象的状态会变为有效。处于该状态的 istream 对象会使条件变为假。
在 Windows 零碎中,敲Ctrl+z,而后按 Enter 键。在 Unix 零碎中,包含 Mac OS X 零碎中没用Ctrl+d。
编译器的一部分工作是 寻找程序文本中的谬误 。编译器没有能力查看一个程序是否依照作者用意工作,然而能够查看 模式上的谬误 。如:
1. 语法错误(syntax error)
如 endl 后应用了冒号而不是分号,字符串常量两侧漏掉了引号,return 语句漏掉了分号等。
2. 类型谬误 (type error)
如像一个冀望参数为 int 的函数传递了一个字符串字面值常量。
3. 申明谬误 (declaration error)
对来自规范库的名字遗记应用 std::、标识符名字拼写错误等。
当你抉择一种格局格调时,思考它会对程序的可读性和易了解性有什么影响,而一旦抉择了一种格调,就要 保持应用。
1.5 类简介
C++ 最后的一个设计焦点就是能定义应用上像内置类型一样天然的 类类型。(class type)
习惯上,头文件依据 其中定义的类的名字 来命名。通常用.h作为头文件的后缀。规范库头文件通常不带后缀 。编译器个别不关怀头文件名的格局,但 有的 IDE 对此有特定要求。
蕴含来自 规范库头文件 时,应该用 <> 突围头文件名 。对于不属于规范库的头文件, 则用 ”” 突围。
从键盘重复敲入记录作为输出,十分乏味。大多数 OS 反对文件重定向,这种机制容许咱们将规范 IO 与命名文件关联起来:
$ addItems <infile >outfile
假设 $ 是 IO 提示符,咱们的程序曾经编译为 addItems.exe 的可执行文件(在 UNIX 中是 addItems),则上述命令 会从一个名为 infile 的文件读取记录,并将后果写入到 outfile 中,两个文件都位于当前目录。