C++ primer读书笔记 Chapter 1 some tips about Getting Start

1.关于main函数:

main函数的返回值必须是int 型
2.关于cerr clog cout的区别:

在CSDN上搜到一篇博文: http://blog.csdn.net/templxj/archive/2007/01/29/1496629.aspx原文如下,感谢原作者
c++里关于cerr,clog,cout三者的区别:
cerr(无缓冲标准错误)----------没有缓冲,发送给它的内容立即被输出
clog(缓冲标准错误)------------有缓冲,缓冲区满时输出
cout--------------------------------标准输出
三个都是ostream类定义的输出流对象.
cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否满了,都立即输出流中所有数据,然后插入一个换行符.
cerr流对象是标准错误流,指定为和显示器关联,和cout作用差不多,有点不同就是cout
通常是传到显示器输出,但可以被重定向输出到文件,而cerr流中的信息只能在显示器输出.
clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.  

 

3.关于<<和>>操作符:

书上要点总结如下:
std::cout << "Enter two numbers:" << std::endl;
输出操作符实例都接受两个操作数:左操作数必须是 ostream 对象;右操作数是要输出的值。操作符将其右操作数写到作为其左操作数的 ostream 对象。
C++ 中,每个表达式都会产生一个结果,通常是将操作符作用到其操作数所产生的值。当操作符是输出操作符时,结果是左操作数的值。也就是说,输出操作返回的值是输出流本身。
输入操作符(>> 操作符)行为与输出操作符相似。它接受一个 istream 对象作为其左操作数,接受一个对象作为其右操作数,它从 istream 操作数读取数据并保存到右操作数中。像输出操作符一样,输入操作符返回其左操作数作为结果。
在写 C++ 程序时,大部分出现空格符的地方可用换行符代替。这条规则的一个例外是字符串字面值中的空格符不能用换行符代替。另一个例外是空格符不允许出现在预处理指示中。
std::cout << "The sum of " << v1 << " and " << v2
               << " is " << v1 + v2 << std::endl;
 

4.关于缓冲区:

 endl 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区。通过刷新缓冲区,用户可立即看到写入到流中的输出。
 程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致程序错误推断崩溃位置。
那么什么是刷新缓冲区呢?到网上找到资料如下:

以缓冲方式打开一个文件时,往文件里写几个字节,一般不会立即真正把这几个字节写入文件,只有当缓冲区满时才真正写盘。如果想在缓冲区满之前写盘保存,可以做冲刷缓冲区动作。下列行为引发冲刷动作:
1)缓冲区满时;
2)行输出时遇endl,cerr或cin时;
3)执行冲刷函数;
4)关闭文件。

 

5.关于类:

类的定义通常放在头文件中。我们必须使得编译器可以访问和类相关的定义。我们将类定义放入头文件中,要使用该类的任何程序都必须包含该头文件。

你可能感兴趣的:(C++ primer读书笔记 Chapter 1 some tips about Getting Start)