[读书笔记] - <Essential C++> - 第一章: C++ 编程基础

关键词:

called: 调用;

invoked: 唤起;

常用命令:

cout: 输出(see out);

cin: 输入(see in);

cerr: 错误信息输出(see error);

小知识点:

1. main() 函数的返回值

在 main() 函数的结尾必有 return 命令返回结果, 若在其末尾没有写这一语句的话, 编译时会被自动加上;

2. <iostream>

包含标准输入输出流函数的文件, 如 cout, cin 就是当中的函数, 若要使用必须包含该头文件;

3. 转义序列

'\n': 换行字符(newline)

'\t': 定位(跳格)字符(tab)

'\0': null

'\'': 单引号(single quote)

'\"': 双引号(double quote)

'\\': 反斜杆(backslash)

4. if 语句中的判断式

若逻辑运算符为 "||" 且运算符左边的计算结果为 true 的话, 则由此可判断出判断式的值必为 true, 故不会对运算符右边的表达式进行计算;

若逻辑运算符为 "&&" 且运算符左边的计算结果为 false 的话, 则由此可判断出判断式的值必为 false, 故不会对运算符右边的表达式进行计算;

反之则会计算出整个判断式的值;

5. 运算符的优先级 (precedence)

逻辑运算符: NOT(!)

算术运算符: (*, /, %)

算术运算符: (+, -)

相对关联运算符: (<, >, <=, >=)

逻辑运算符: AND(&&)

逻辑运算符: OR(||)

赋值运算符: (=)

6. 数组与向量的定义

数组: int arr[size], 其中 size 必须是常量表达式;

向量: vector<type> vec(size) or vector<type> vec(arr, arr + size), 其中 arr 也 type 型的数组;

注: 第二个参数为 arr + size, 而不是 arr + size - 1;

7. 指针

为了防止对 null 指针进行提取操作, 在使用前可以先加一个判断: if (pi)

如果要通过指针来选择操作行为, 必须改用 arrow(->) (而非 dot) 成员选择运算符;

8. 随机数

通过 <cstdlib> 中的 srand()rand() 两个函数来实现, 其中 srand(int seed)  用于产生随机数种子, 而 rand() 则是利用种子产生随机数

9. cerr 与 cout 的区别

两者都会将结果输出到用户的终端机上, 而两者的唯一差别是, cerr 的输出结果并无缓存 (bufferred) 情形-- -- 它会立即显示于用户终端机上

10. 文件的读写

头文件: <fstream>

ofstream:

eg: ofstream outfile("filename"); ofstream outfile("filename", ios_base::app);

以输出模式打开文件, 若文件不存在, 则会自动创建; 若以第一种方式打开文件, 则原文件中的数据会被丢弃; 若想保留原数据, 则可以用第二种方式以追加模式打开文件;

ifstream:

eg: ifstream infile("filename");

以输入模式打开文件, 若打开失败, 则 infile 对象将会被核定为 false; 如果成功, 则该文件的写入位置会被设定在起始处;

读取操作: infile >> str;

每次会读取以空格为间隔的一段数据, 若已达到文件尾端, 则 str 会被核定为 false;

fstream:

eg: fstream iofile("filename", ios_base::in|ios_base::app);

注: 这时文件位置指针位于尾端, 若这时进行读取操作, 则会马上遇到 "读完" 的状况, seekg(int ) 可重新定位文件位置指针; eg: iofile.seekg(0);

posted @ 2012-04-14 16:43  Howll Chen  阅读(212)  评论(0编辑  收藏  举报