《C++ Prime》第1章 阅读笔记

  • 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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值