函数
一个函数的定义包括四部分:返回类型(return type)、函数名(function name)、一个括号包围的形参列表(parameter list,允许为空)以及函数体(function body)。
输入输出
iostream 库包含两个基础类型的 istream 和 ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从 IO 设备读出或写入 IO 设备的。
标准输入输出对象
标准库定义了 4 个 IO 对象:cin(标准输入)、cout(标准输出)、 cerr(标准错误:输出警告和错误消息)、 clog(输出程序运行时的一般性信息)。
cout 可以重定向(比如输出到文件),通过缓冲区。cerr 不可以重定向(只能输出到显示器),不通过缓冲区。cerr的作用是在一些特殊的紧急情况下还可以输出(比如调用栈用完了,没有出口的递归等)。
缓冲区的目的是减少刷屏的次数,多个字符同时输出到显示器。
endl 可以刷新缓冲。在添加打印语句时,应保证一直刷新流,以防程序崩溃,输出还留在缓冲区内。
C++ 中,一个表达式产生一个计算结果,它由一个或多个运算对象和(通常是)一个运算符组成。
向流写入数据
std::cout << "Enter two numbers:";
std::cout << std::endl;
std::cout <<std: :endl;
第一个输出运算符给用户打印一条消息。这个消息是一个字符串字面值常量(string literal),是用一对双引号包围的字符序列。
第二个运算符打印 endl,这是一个被称为**操纵符(manipulator)**的特殊值。写入 endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。
缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
从流读取数据
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
int 是一种内置类型,即语言自身定义的类型。初始化一个变量,就是在变量创建的同时为它赋予一个值。
输入操作从 std::cin 读入两个值,并将第一个值存入v1,将第二个值存入v2。
注释
C++中有两种注释:单行注释和界定符对注释(// 和 /* */)。
注释界定符不能嵌套
控制流
语句一般是顺序执行的:语句块的第一条语句首先执行,然后是第二条语句,依此类推
while 语句
while(condition){
statement;
}
while 语句的执行过程是交替地检测condition条件和执行关联的语句statement,直至condition为假时停止。
所谓条件(condition)就是一个产生真或假的结果的表达式。
for 语句
因为在循环条件中检测变量、在循环体中递增变量的模式使用非常频繁,所以 C++ 专门定义了第二种循环语句:for 语句,来简化这种模式。
for(init-statement;condition;expression){
statement;
}
每个 for语句都包含两部分:循环头和循环体。循环头控制循环体的执行次数。循环体每次执行前都会先检查循环条件,循环持续,直至循环条件为假。
读取数量不定的输入数据
while(std::cin >> value)
数据读取操作是在while的循环条件中完成的,循环会一直执行到遇到文件结束符或输入错误为止。
当从键盘向程序输入数据时,对于如何指出文件结束,不同操作系统有不同的约定。
在Windows系统中,输入文件结束符的方法是敲 Ctrl+Z(按住Ctrl键的同时按Z键)然后按Enter或 Return 键。
在 UNIX系统中,包括Mac OS X系统中,文件结束符输是用 Ctrl+D。