- main函数的返回值必须为int
- 命令行
- 编译文件:
$ cl /EHsc prog1.cpp
- 执行文件:
$ prog1.exe 或者 $prog1
(用参数 -std=c++0x 来打开对C++11的支持)
- 流(stream):一个流就是一个字符序列,流想要表达的是 字符是顺序生成或消耗的
- 标准库定义了4个IO对象
- cin 标准输入
cout 标准输出
cerr 标准错误,用于输出警告和错误信息
clog 用于输出程序运行时的一般性信息
- cerr与cout的区别:
cout对应于标准输出流,默认情况下是显示器。这是一个被缓冲的输出,可以被重定向。cerr对应标准错误流,用于显示错误消息。默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向。
- 为什么要用cerr
比如,你的程序遇到调用栈用完了的威胁(无限,没有出口的递归)。你说,你到什么地方借内存,存放你的错误信息?
所以有了cerr。其目的,就是在你最需要它的紧急情况下,还能得到输出功能的支持。 缓冲区的目的,就是减少刷屏的次数——比如,你的程序输出圣经中的一篇文章。不带缓冲的话,就会每写一个字母,就输出一个字母,然后刷屏。有了缓冲,你将看到若干句子“同时”就出现在了屏幕上(由内存翻新到显存,然后刷新屏幕)。
- cin的返回值是cin,cout的返回值是cout
- cin >> v1 >> v2; <=> (cin >> v1) >> v2;//先输入到v1再输入到v2,分隔符可以用 空格、Tab、回车
- endl是操纵符,
- 作用:1. 结束当前行;
2. 将与设备关联的缓冲区中的内容刷到设备中
- 冲刷缓冲区的方式;
以缓冲方式打开一个文件时,往文件里写几个字节,一般不会立即真正把这几个字节写入文件,只有当缓冲区满时才真正写盘。如果想在缓冲区满之前写盘保存,可以做冲刷缓冲区动作。下列行为引发冲刷动作:
1)缓冲区满时;
2)行输出时遇endl;
3)执行冲刷函数(好像叫fflush);
4)关闭文件。
- 第一次出现的 /* 和 */ 之间为注释,p9
- while(std::cin >> value), 条件的效果为检测六的状态
流未遇到错误,条件为真;当遇到文件结束符(end-of-file),或遇到无效输入(数据类型不匹配)时,条件为假。
- 输入文件结束符方法:Windows: Ctrl+Z UNICX:Ctrl+D
- 文件重定向:p19