想了想还是以c++prime为主吧。

第1章 开始

1.1 编写一个简单的c++程序

1.1.1 编译.运行程序

●由于计算机不能直接理解和运行C++源程序所以需要把人类读写的字符的排列变为计算机能理解的比特的排列。(即转换为0和1组成的代码)

●对源程序进行编译、链接,形成可执行文件

int类型是一种内置类型,即语言自身定义的类型

1.2 初识输入输出
输入流和输出流而言,一个流就是一个字符序列。术语“流”的意思表示,随时间的推移,字符是顺序生成或消耗的。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。

​ 标准库的四个标准输入输出流:cin、cout、cerr、clog。

​ 比如:cin >> x #(cin是标准输入流,>>是输入运算符,>>x是变量)

​ cin与键盘配合形成流,提取流过来的字符,并将其作为数值存放到变量x中。

cin: istream类型的对象,标准输入( standard input )
cout: ostream类型的对象,标准输出( standard output )
cerr: ostream类型的对象,标准错误(standard error)
clog: ostream类型的对象,用来输出程序运行时的一般信息

Q:关于引入标准库头文件

A:有两种方式,一种是尖括号一种是双引号,一般是指的他们的搜索路径不同,如果是尖括号是在系统指定目录寻找头文件,双引号(自己创建的头文件)是先到项目所在目录寻找头文件再到系统指定目录寻找头文件。

​ cin可以跳过空格、制表符、换行符等空白字符

​ cout 可以重定向(比如输出到文件),通过缓冲区。

​ cerr 不可以重定向(只能输出到显示器),不通过缓冲区。cerr的作用是在一些特殊的紧急情况下还可以输出(比如调用栈用完了,没有出口的递归等)。缓冲区的目的是减少刷屏的次数,多个字符同时输出到显示器。
​ endl 是操作符,用来结束当前行,将设备相关的缓冲区内容刷到设备中。在添加打印语句时,应保证一直刷新流,以防程序崩溃,输出还留在缓冲区内。

​ 前缀std::是标准库命名空间(不能重名)(namespace)

1.3 注释简介

​ 注释可以帮助读者理解程序。当修改代码时,不要忘记修改注释。

​ C++ 有两种注释:
​ 单行注释:以双斜线(//)开始,以换行符结束。
​ 界定符对注释(不能嵌套):以 /* 开始,以 */ 结束。
​ 当界定符对注释跨越多行时,最好能显示指出其内部的程序行都属于多行注释的一部分,因此建议注释内的每行都以一个星号开头。
​ 在 VS 中使用快捷键注释多行时采用的是 //,理解:因为要注释的代码中可能包含 */ 字符,这种情况下使用界定符对注释会产生错误,所以采用单行注释方式。

1.4 控制流循环与分支

1.4.1 while语句

​ while 语句:反复执行一段代码,直到给定条件为假为止,直到条件为假。

​ ●语法形式

​ while (表达式) 语句: 可以是复合语句,其中必须含有改变条件表达式的语句。

​ ● 执行顺序

​ 先判断表达式的值,若为 true 时,执行语句。

​ do-while语句

​ ● do-while 语句的语法形式

​ do 语句 // 可以是复合语句,其中必须含有改变条件表达式值的语句。

​ while (表达式)

​ ● 执行顺序

​ 先执行循环体语句,后判断条件。
​ 表达式为 true 时,继续执行循环体。

1.4.2 for语句

​ 因为在循环条件中检测变量、在循环体中递增变量的模式使用非常频繁,所以 C++ 专门定义了第二种循环语句:for 语句,来简化这种模式。

●初始化语句、循环条件、循环体、表达式

● for语句的另一种形式:范围for语句:

for  (声明:表达式)

    语句

1.4.3 读取数量不定的输入数据

​ 使用 while(cin>>value) 来读取数量不定的输入,循环会一直执行到遇到文件结束符或输入错误为止。windows的文件结束符是 Ctrl+Z 然后按 Enter
​ 在编译时,最好修改一个错误编译一次,或者最多修改了一小部分后重新编译。
​ 对于c++程序的缩进和格式,不存在唯一正确的风格,但是保持一致性是十分重要的。

1.4.4 if语句

●if (表达式) 语句

​ 例:if (x > y) cout << x;

●if (表达式) 语句1 else 语句2

​ 例:if (x > y) cout << x;

​ else cout << y;

●if (表达式1)语句1
else if (表达式2) 语句2
else if (表达式3) 语句3

else 语句 n

●嵌套的if结构

● 语法形式

if( )

​ if( ) 语句 1

​ else 语句 2

else

​ if( ) 语句 3

​ else 语句 4

● 注意

​ ● 语句 1、2、3、4 可以是复合语句;

​ ● 每层的if 与 else 配对,或用 { } 来确定层次关系。

1.5 类简介

​ C++中我们通过类(class)来定义自己的数据结构。
​ 一个类定义了一个类型,以及与其相关联的一组操作

1.5.2 初识成员函数
成员函数是定义为类的一部分的函数,也被称为方法。
通常以类对象的名义来调用成员函数:Item.isbn()。即使用点运算符(.)

​ . 点运算符
​ ()调用运算符,里面可以放参数

问题
四个标准输入输出流是什么
cout 和 cerr 的两点区别
缓冲区有什么作用?可以通过什么刷新缓冲区
while(cin>>value)什么情况下会停止
windows 的文件结束符是什么

回答
cin、cout、cerr、clog
cout 可重定向,通过缓冲区;cerr 不可重定向,不通过缓冲区
缓冲区能减少刷屏的次数,每个 endl 都会刷新一次缓冲区
遇到文件结束符或输入错误
先 ctrl+z 后 enter