1. 编译和运行
2. 输入和输出
C++中的输入和输出使用iostream库。其中该库包含两个基础类型istream和ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。
2.1 标准输入输出对象
标准库定义了4个IO对象:cin、cout、cerr和clog。其中cin为标准输入,是istream类型的对象,cout为标准输出,是ostream类型的对象,cerr为标准错误,也是ostream对象,用来输出警告和错误消息,clog也为ostream对象,用来输出程序运行时的一般性消息。
2.2 一个使用IO库的程序
#include<iostream>
int main(){
std::cout << "Enter two numbers:" << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The sum of " << v1 << " and " << v2
<< " is " << v1 + v2 << std::endl;
return 0;
}
<<为输出运算符,接受两个运算对象:左侧的运算对象是一个ostream对象,右侧的运算对象是要打印的值。此运算符将给定的值写到给定的ostream对象中,计算结果就是左侧的运算对象,即计算结果就是写入给定值的那个ostream对象。
>>为输入运算符,与输出运算符类似。它接受一个istream对象作为其左侧的运算对象,接受一个对象作为其右侧的运算对象。它从给定的istream对象读入数据,并存入到给定对象中,并返回其左侧运算对象作为计算结果。
endl是操纵符。写入endl的效果就是结束当前行,并将设备关联的缓冲区中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
std是命名空间,前缀std:: 指出名字cout、cin和endl是定义在名为std的命名空间中的。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。标准库定义的所有名字都在std中。
::是作用域运算符,指出了使用定义在命名空间中的名字。
3. 注释
C++中的注释有两种:单行注释和界定符对注释。
//是单行注释。当前行“//”右侧的所有内内容会被编译器忽略。这种注释可以包含任何文本,包括额外的"//"。
/* 和 */是继承自C语言的两个界定符。以/*开始,以 */结束,可以包含 */以外的任何内容,包括换行符,可用于多行注释。但是,界定符对注释不能嵌套使用,如若要注释界定符,可以使用单行注释中的"//"。
对多行注释可以使用以下规范:
/*
*注释对/* */不能嵌套
*"不能嵌套" 几个字会被认为是源码
*像剩余程序一样处理
*/
这里只是说明以下多行注释的使用规范,上面这种注释完全是错误的,从不同的颜色也可以看出。