第2章 开始学习C++
直接上代码,对照代码讲解:
#include <iostream> // input output stream 输入输出流
using namespace std; // 名称空间编译指令
int main()
{
cout << "hello world"; // c++ out 输出
cout << endl; // end line 换行
int a;
cin >> a;
cout << a;
}
#include <iostream>
同C语言为包含头文件,只是C++对C的头文件有所升级,为与传统C区分且有自己的特色,故ANSI/ISO委员会制定了属于自己的头文件/包含文件的命名方式。如下表:
表2.1 头文件命名约定
当然,不是说进行升级了就不能用原来的了,C++可以说是完全兼容C语言的,几乎所有的C语言程序都可以在C++编译环境中执行,C++虽然兼容C语言,但是却升级了C很多地方,可以说是对C取其精华,去其糟粕。所以,在C++中也是可以使用类似"stdio.h"的头文件的。
而头文件的名称"iostream"的意义也很好理解:
i:input //输入(进入程序的信息)
o:output //输出(从程序中发送出去的信息)
stream:(数据)流
using namespace std;
此为using编译指令,后面章节有介绍。可以先理解为,两个都已经封装好的产品,却使用了同一个名字,那么使用此指令则指定了哪个公司的产品,不会产生歧义。std统统包含了后面的cout、cin、endl。写在函数外面,则作用域为全局;写在函数里则作用域为局部。
也有其他方式代替该写法,例如:
using std::cout;
using std::cin;
using std::endl;
再者在所用时:
std::cout;
std::cin;
std::endl;
只是下面两种写法具有局限性,第一种具有通用性,具体情况具体使用。
“<<”:插入运算符
“>>”:抽取运算符
名字非常抽象,但只要根据实例来记就很好理解:
cout << "hello world";
cin >> a;
第一行字符串"hello wordl"经cout输出显示;
第二行则通过键盘输入给a;
cout、cin可以理解为C语言的printf、scanf,只是其形式更为简介,也更加智能,它可以根据a的数据类型自动转换。
通过这两行可以看出,"<<“与”>>"分别表示数据的流向:
hello world字符串流向输出显示
cin键盘输入数据流向a
有了这层理解,便容易理解插入运算符与抽取运算符名字的含义了。
endl:end line 结束换行,与C语言\n类似,C++中\n也可以放在字符串中效果同endl
cout << "\n"; // 字符串
cout << endl; // 被包含在iostream里
另外,cout有一拼接写法:
cout << "Now you have ";
cout << carrots;
cout << " carrots.";
cout << endl;
cout << "Now you have " << carrots << " carrots." << endl;
cout << "Now you have "
<< carrots
<< " carrots."
<< endl;
三种写法效果相同,一行拼接过长时可以多行拼接。